4

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

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

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

4

3 に答える 3

8

待機を使用できます:

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

bash の man ページから:

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

于 2009-01-09T23:59:08.903 に答える
5

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

だからこのように:

seq 4|xargs -i -n 1 -P 4 ./test{} 
于 2011-08-22T09:16:15.317 に答える
4

の線に沿った何か

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

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

于 2009-01-09T23:57:24.227 に答える