LINUX.ORG.RU

Ответ на: комментарий от pr849

Значит всю жизнь ничего не выводило.

Задумайся, почему вообще работает echo $VAR, что подставляет значение вместо $VAR и почему env уже поздно что-то делать.

t184256 ★★★★★
()
Ответ на: комментарий от pr849

Но ведь всю жизнь писали как в сабже.

Никогда не писали.

У тебя переменная «$AAA» резольвится в значение не командой echo, а шеллом, до запуска команды. Вот внутри самой echo (допустим, ты правишь /usr/bin/echo, и шелл не обрабатывает её как встроенную команду) доступ к значению $AAA так будет.

Для каждой команды сперва шелл раскрывает все переменные, джокеры и прочую фигню в значения, в том числе всякие [0-9]* в имена соответствующих файлов, и уже после этого запускает команду на исполнение. В твоём случае это всё является единой командой, поэтому раскрытие $AAA в её значение происходит до присваивания. Как верно сказали, присвой отдельной командой, потом вызывай echo — так будет работать: AAA=BBB ; echo "$AAA"

CrX ★★★
()
Последнее исправление: CrX (всего исправлений: 1)