質問

こんにちは、rcSスクリプトを使用してブートするシミュレーターを使用しています。これが私のスクリプトです

cd /tests
./test1 &
./test2 &
./test3 &
./test4 
exit

すべてのテストを同時に実行し、前のすべてのテストが終了したときにのみexitコマンドを実行することを望みます。そして、テスト4が終了したときだけでなく、これは可能ですか? ありがとう。

役に立ちましたか?

解決

waitを使用できます:

./test1 &
./test2 &
./test3 &
./test4 &
wait

bashのマニュアルページから:

  

待機[n ...]                 指定された各プロセスを待って、その   終了ステータス。各nはa   プロセスIDまたはジョブ仕様。もし   ジョブ仕様が与えられ、すべてのプロセスが   そのジョブのパイプラインが待機されます。   nが指定されていない場合、                 現在アクティブなすべての子プロセスが待機される   戻りステータスはゼロです。 nの場合   存在しないプロセスを指定するか、   ジョブの場合、戻りステータスは127です。   それ以外の場合、戻りステータスは   最後の終了ステータス                 プロセスまたはジョブが待機しました。

他のヒント

xargs は並列をサポートできます

したがって、次のようになります:

seq 4|xargs -i -n 1 -P 4 ./test{} 

線に沿った何か

cd /tests
./test1 &
./test2 &
./test3 &
./test4 &
wait
exit

(bashシェルを想定しています)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top