Подтвердить что ты не робот

UNIX, получить переменную окружения

У меня есть смешной вопрос из-за смешной проблемы.

Обычно, если я хочу получить содержимое переменной среды в оболочке UNIX, я могу сделать

echo ${VAR}

Предположим, из-за моей нелепой ситуации, что это невозможно.

Как получить содержимое переменной среды в stdout, без того, кто смотрит на саму команду (а не на выход), см. значение переменной среды.

Я могу представить, что решение является чем-то вроде echo env(NAME_OF_VAR), хотя я не могу найти его. Решение должно работать в sh.

PS Я не могу написать script для этого, это должна быть встроенная команда unix (я знаю, смешная проблема)

Спасибо (и жаль абсурда)

4b9b3361

Ответ 1

printenv VARIABLE_NAME

Ответ 2

Вы имеете в виду что-то вроде этого:

ENV() {
    printf 'echo $%s\n' $1 | sh
}

Это работает в простой старой оболочке Борна.

Ответ 3

введите следующую команду в терминал, он отобразит весь список переменных среды

printenv

теперь напечатайте требуемую переменную следующим образом:

echo $VARIABLENAME

Ответ 4

Как насчет этого:

myVariable=$(env  | grep VARIABLE_NAME | grep -oe '[^=]*$');

Ответ 5

Решение действительно зависит от того, каковы ограничения, почему вы не можете использовать простой $VAR. Возможно, вы могли бы вызвать оболочку, которая не имеет ограничений, и пусть эта под-оболочка оценивает переменную:

bash -c 'echo $VAR'