Установка переменной и последующий запуск команды

Модератор: /dev/random

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8255
Статус: Маньяк
ОС: Arch, CentOS, Ubuntu

Установка переменной и последующий запуск команды

Сообщение serzh-z »

Кажется, в Bash всегда работало следующее:

Shell

$ FOO=bar echo ${FOO}
Что-то изменилось или я помню то, чего не было? Сейчас FOO не печатается: Arch, Ubuntu, 4.4.12, 4.4.19.
Последний раз редактировалось serzh-z 02.06.2018 22:07, всего редактировалось 1 раз.
Спасибо сказали:

Аватара пользователя
/dev/random
Администратор
Сообщения: 5102
ОС: Gentoo

Re: Установка переменной и последующий запуск команды

Сообщение /dev/random »

Не припомню, чтобы это когда-нибудь работало. Сначала парсится вся команда, выполняются подстановки, а уже потом выполняется присваивание в левой части. Чтобы это заработало, нужно как-то так:

Shell

$ FOO=bar bash -c 'echo $FOO'
Только что проверил в bash 4.0 с древнего sysrcd. Всё точно так же, как и в современных версиях.
Спасибо сказали:

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8255
Статус: Маньяк
ОС: Arch, CentOS, Ubuntu

Re: Установка переменной и последующий запуск команды

Сообщение serzh-z »

/dev/random
Видимо я раньше делал `FOO=bar && echo ${FOO}`, либо обращался к значению переменной внутри запускаемого приложения: `FOO=bar ./use-foo-variable.sh`
Спасибо сказали: