からman bash
:
単純なコマンドは、一連のオプションの変数割り当てです 空白で区切られた単語とリダイレクトが続く 制御オペレーターによって終了されました。最初の単語は 実行されるコマンド。引数ゼロとして渡されます。の 残りの単語は引数として呼び出されたコマンドに渡されます。
したがって、次のように記述することは完全に合法です。
foo=bar echo $foo
しかし、期待どおりには動作しません(改行のみが出力されます)。私にとっては非常に奇妙です:
$ foo=bar printenv
foo=bar
TERM=rxvt-unicode
[...]
誰かが私が間違っているところを教えてもらえますか?
foo=bar eval 'echo eval sees $foo'; echo echo sees $foo
(ここで$foo
は、eval
コマンド内で展開されているため、値はそこで置換されますが、次のエコーコマンドでは置換されません)。