От man bash
:
A simple command is a sequence of optional variable assignments followed by blank-separated words and redirections, and terminated by a control operator. The first word specifies the command to be executed, and is passed as argument zero. The remaining words are passed as arguments to the invoked command.
Так что совершенно законно написать:
foo=bar echo $foo
но это не работает, как я ожидаю (он печатает только новую строку). Это довольно странно для меня, так как:
$ foo=bar printenv
foo=bar
TERM=rxvt-unicode
[...]
Может кто-нибудь объяснить мне, где я делаю неправильно?