シェルスクリプトで(1)バックグラウンドでコマンドを起動するには(2)x秒待ちます(3)そのコマンドの実行中に2番目のコマンドを実行するにはどうすればよいですか?

シェルスクリプトで(1)バックグラウンドでコマンドを起動するには(2)x秒待ちます(3)そのコマンドの実行中に2番目のコマンドを実行するにはどうすればよいですか?

これが私が起こらなければならないことです:

  1. バックグラウンドでプロセスAを開始
  2. x秒だけ待って
  3. フォアグラウンドでプロセスBを開始

どうすれば待つことができますか?

私は「スリープ」がすべてを停止するように見えますが、実際にプロセスAが完全に完了するまで「待機」したくありません。時間ベースのループを見たことがありますが、よりきれいなものがあるかどうか疑問に思います。

ベストアンサー1

あなたの質問を誤解していない場合は、次の短いスクリプトを使用して簡単に解決できます。

#!/bin/bash

process_a &
sleep x
process_b

waitスクリプトが終了する前に完了するのを待つようにするには、process_a最後に追加のエントリを追加します)。

スクリプトなしで1行のコードで実行することもできます(@BaardKopperudが提案したように)。

process_a & sleep x ; process_b

おすすめ記事