web-dev-qa-db-ja.com

2つのコマンドを並行して実行しますが、次のコマンドを開始する前に1つのコマンドが終了するのを待つだけです

次のプロセスを開始する前に処理を終了する必要があるプロセスをバックグラウンドでいくつか設定しました。これを設定している間、2つのプログラムを同時に開始する必要がある1つのステップがありますが、次のステップを実行するために完了する必要があるのは、これらの1つだけです。次のステップを開始するために、2番目のプログラムを終了する必要はありません。

prog1 prog2

prog3

必要なのは、prog1が終了したときにprog3を開始し、prog2を実行し続けることです。これは可能ですか?私が試したことは、prog3を開始する前にprog2が処理を終了するのを待っていることです。

2
Ciarán
prog2 & (prog1 ; prog3) &
3
andcoz
prog1 &; pid1=$!; prog2 &; wait $pid1; prog3
1
user218374