Bashでいつ、なぜ「wait」コマンドが必要なのですか?

Bashでいつ、なぜ「wait」コマンドが必要なのですか?

bashシェルはすでにコマンドを1つずつ実行し、実行されたコマンドが完了するのを待ちませんか?それでは、このコマンドはいつ、なぜ必要なのでしょうかwait

答え1

waitバックグラウンドで作業を開始した場合は、次のようになります。

#!/bin/bash
task1 &
task2 &
task3 &
wait
echo done

この例では、スクリプトは3つのバックグラウンドタスクを開始します。これはバックグラウンドで同時に実行され、3waitつのタスクすべてが完了するのを待ちます。返された後、waitスクリプトは引き続き処理されますecho done


コメントで指摘されているように、ジョブwait番号(wait %3)またはpid(wait 1234)を指定できます。インタラクティブなbash(jobまたは使用)ではこれを簡単に見つけることができますが、psバッチモードではより難しいかもしれません。

関連情報