Shellで2つの並列スクリプトを実行しますが、「中間」スクリプトが終了するのを待つ方法

Shellで2つの並列スクリプトを実行しますが、「中間」スクリプトが終了するのを待つ方法

私が欲しい:

  1. 終了しないスクリプトを実行すると、ファイルが生成されます。
  2. ファイルを監視するスクリプトを実行して終了します。
  3. 終了しない最終スクリプトを実行します(最初のスクリプトの出力によって異なります)。

私は次の答えを見ました。コマンドを並列に実行し、次のコマンドセットを開始する前に、1つのコマンドセットが完了するのを待ちます。しかし、最初のスクリプトが終了しないので、私の要件は異なると思います。

# This runs continuously
nps $DEV_SCRIPT &

# How can I not run the final parallel script until this exits?
node ./scripts/waitForAssetManifest.js &
wait

# This also runs continuously
node-dev build/lib/index.js

ベストアンサー1

あなたはそれを使用することができます$!ジョブがバックグラウンドに入るとすぐに、そのジョブのPIDを取得し、そのプロセスを具体的に待ちます。

# This runs continuously
nps $DEV_SCRIPT &

# How can I not run the final parallel script until this exits?
node ./scripts/waitForAssetManifest.js &
wait $!

# This also runs continuously
node-dev build/lib/index.js

この場合、バックグラウンドで2番目のコマンドを実行しないことをお勧めします。

# This runs continuously
nps $DEV_SCRIPT &

# How can I not run the final parallel script until this exits?
node ./scripts/waitForAssetManifest.js

# This also runs continuously
node-dev build/lib/index.js

おすすめ記事