вывести переменную окружения в bash

Я не понимаю, почему это не работает:

TEXT="blah" echo $TEXT    #echoes nothing

Я думал, что это может быть из-за встроенного эха, поэтому я попробовал это:

TEXT="blah" `which echo` $TEXT    #still nothing

Что я скучаю?

0
задан 31 October 2018 в 15:07

1 ответ

Оболочка разворачивает переменные, прежде чем она выполнит команду, даже прежде чем она выполнит присвоения.

Cf.

text=blah ; echo $text

или

text=blah eval 'echo $text'

Первый работает, потому что присвоение выполняется как отдельная команда. Второй работает потому что $text единственно заключается в кавычки, который предотвращает его расширение, когда оболочка обрабатывает команду; когда eval позже работает, переменной уже присвоили значение.

3
ответ дан 27 October 2019 в 06:18

Другие вопросы по тегам:

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