プロセス ID が pid の値であるバックグラウンドプロセスの終了を待ち、終了状態を報告します。不明なプロセス ID を表す pid は、終了状態 127 で終了した既知のプロセス ID として扱われます。
pid がない場合、ユーザのシェルが現在実行中のすべてのバックグラウンドプロセスは待機させられます。
新しいプロセスを作成せずに、シェル自身が wait を実行します。
wait が 1 つまたは複数の pid 引き数を指定して実行された場合、指定した全ての pid のプロセスが終了しているかまたはプロセスが実行したシェルに対して不明であり、かつ最後の pid の状態が解っていれば、終了状態は最後の pid のものになります。
wait がシグナルを受信したことにより異常終了した場合、終了状態は 128 より大きいものとなります。
そうでなければ wait は、次のいずれかの値で終了します。
cannot fork, too many processes
を受け取った場合、バックグラウンドプロセスを整理するために wait コマンドを使用してみてください。それでもうまく働かない場合は、システムプロセステーブルがいっぱいになっているか、実行中のフォアグラウンドプロセスが多すぎるということです(ユーザのログインに対応するプロセス ID の数とシステムの管理できるプロセスの数には限度があります)。
3 段階以上のパイプラインのすべてのプロセスが、シェルの子プロセスであるとは限らないのでそれらのプロセスの終了を待つことはできません。
pid が実行中のプロセス ID でない場合、wait はすぐに終了します。