2つの実際の違いは何ですか?
env VARIABLE=VALUE command
そして
VARIABLE=VALUE command
bash互換シェルから?
注:私は直接いくつかのテストをしましたが、違いはありません。
編集:例は次のとおりです
EDITOR=nano visudo
そして
env EDITOR=nano visudo
答え1
外部コマンドの結果はあまり変わりません。実行には、シェルが実行する追加のenv
変数割り当て解析のみが含まれます。シェルはそれほど単純ではない環境を整理するので、より便利です。exec
env -i
どちらの場合も、コマンドの置換などの拡張は、割り当てがVAR=$(somecmd)
発生する前にシェルによって実行され、どちらの場合も同じですPATH
。私が考えることができる唯一の違いは_
その価値です。Bash は実行するコマンドの名前に設定されます。(env
しかし)。もちろん、そうでない場合は、env
シェルに組み込まれているコマンドバージョンを実行することもできます。