9.3.34 waitコマンド(子プロセスの完了を待つ)
形式
wait [pid ...]
機能
子プロセスの完了を待ちます。pidには完了を待つ子プロセスのプロセスIDを1つ以上指定します。pidを指定しなかった場合は,実行中のすべての子プロセスの完了を待ちます。数値以外から始まる不当なプロセスIDをpidに指定した場合は,終了コード127で正常終了します。
ただし,次のように数値と数値以外を混在して指定し,かつ先頭が数値の場合,数値として解釈される位置までをプロセスIDと判断し,プロセスの完了を待ちます。
UAP & # シェル変数!にはUAPを起動したプロセスが格納されます。 wait $!ABC # waitコマンドはABCの直前までをプロセスIDと解釈し,完了を待ちます。
引数pidを指定した場合,waitコマンドは最後の完了を待ったプロセスのコマンドの終了コードで終了します。例を次に示します。
UAP1 & # UAP1は終了コード2 PID1=$! # UAP2 & # UAP2は終了コード16 PID2=$! # UAP3 & # UAP3は終了コード0 PID3=$! # wait $PID1 $PID2 $PID3 # waitコマンドは終了コード0で終了します
引数
- pid
完了を待つ子プロセスのプロセスIDを指定します。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
127 |
正常終了
|
上記以外 |
エラー終了 |
注意事項
この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。
使用例
プロセスIDが4848の子プロセスの完了を待ちます。
wait 4848