UNIX, получите переменную среды

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

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

echo ${VAR}

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

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

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

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

Спасибо (и жаль о нелепости)

40
задан Mike 19 March 2010 в 13:32
поделиться

4 ответа

Вы можете:

printenv ИМЯ ПЕРЕМЕННОЙ

58
ответ дан 27 November 2019 в 01:34
поделиться

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

bash -c 'echo $VAR'
1
ответ дан 27 November 2019 в 01:34
поделиться

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

myVariable=$(env  | grep VARIABLE_NAME | grep -oe '[^=]*$');
3
ответ дан 27 November 2019 в 01:34
поделиться

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

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

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

4
ответ дан 27 November 2019 в 01:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: