exec
インタラクティブシェルで実行するとどうなりますか?私の言葉はexec
パラメータなしでとても簡単です。
スクリプトではどうですか?
それが何かをするなら、それは何をしますか?
答え1
コマンドを指定しないと、すべてのリダイレクトが現在のシェルに適用されます。以下は、マニュアルページで話す内容の短いバージョンです。私が理解したように、exec
実行が空の場合、新しいシェルを起動せず、現在のシェルを変更せず、コード0を返します。つまり、エラーなしで実行されるという意味です。
答え2
例:
コマンドを引数として使用して呼び出すとき。
通常、コマンドを実行すると、fork
and exec
(プラスパイプなど)が呼び出されます。ただし、exec
最初に追加すると(たとえばexec ls
)呼び出されないため、fork
シェルはそのコマンドに置き換えられます。つまり、コマンドはシェルと同じプロセスで実行されます(シェルはもう存在しません)。
コマンドが呼び出されないとき。
リダイレクトを適用してから適用します。