GNU/Linux >> Linux の 問題 >  >> Linux

Envするかしないか?

コマンドの違いは何ですか

$ env FOO=bar baz

および

$ FOO=bar baz

envはどのような効果がありますか 持っていますか?

承認された回答:

それらは機能的に同等です。

主な違いは、env FOO=bar baz シェルとbazの間の中間プロセスを呼び出す必要があります 、FOO=bar bazと同様です。 シェルはbazを直接呼び出します 。
その点で、FOO=bar baz 優先されます。

env FOO=barを使用している唯一の状況 ここで、コマンドを別のコマンドに渡す必要があります。
具体的な例として、環境の変更を実行するラッパースクリプトがあり、execを呼び出すとします。 渡されたコマンド(例:

#!/bin/bash
FOO=bob
some stuff
exec "[email protected]"

myscript FOO=bar bazとして実行した場合 、exec exec FOO=bar bazとしてエラーをスローします 無効です。
代わりに、myscript env FOO=bar bazと呼びます。 これはexec env FOO=bar bazとして実行されます 、および完全に有効です。


Linux
  1. サブスクリプション マネージャー:コマンドが見つかりません

  2. dnf:コマンドが見つかりません

  3. bc:コマンドが見つかりません

  1. id:コマンドが見つかりません

  2. w:コマンドが見つかりません

  3. df:コマンドが見つかりません

  1. du:コマンドが見つかりません

  2. rm:コマンドが見つかりません

  3. mv:コマンドが見つかりません