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
バッチモードではより難しいかもしれません。