コマンドを引数として使用して呼び出すとき。

コマンドを引数として使用して呼び出すとき。

execインタラクティブシェルで実行するとどうなりますか?私の言葉はexecパラメータなしでとても簡単です。

スクリプトではどうですか?

それが何かをするなら、それは何をしますか?

答え1

コマンドを指定しないと、すべてのリダイレクトが現在のシェルに適用されます。以下は、マニュアルページで話す内容の短いバージョンです。私が理解したように、exec実行が空の場合、新しいシェルを起動せず、現在のシェルを変更せず、コード0を返します。つまり、エラーなしで実行されるという意味です。

答え2

例:

コマンドを引数として使用して呼び出すとき。

通常、コマンドを実行すると、forkand exec(プラスパイプなど)が呼び出されます。ただし、exec最初に追加すると(たとえばexec ls)呼び出されないため、forkシェルはそのコマンドに置き換えられます。つまり、コマンドはシェルと同じプロセスで実行されます(シェルはもう存在しません)。

コマンドが呼び出されないとき。

リダイレクトを適用してから適用します。

関連情報