bashでバックグラウンドジョブの終了を待つ

時間の掛かるプロセスを同時に複数実行して、全てのジョブが終わったら最後に仕上げの処理をやりたかったのでメモ

pids=()

./hoge.sh &
pids+=($!)

./fuga.sh &
pids+=($!)

for pid in ${pids[@]}; do
    wait $pid
done

./foobar.sh

$!で直前のPIDを取得して配列化して、waitで待つ。