並列に実行される複合コマンドの時間を計算する方法は?

並列に実行される複合コマンドの時間を計算する方法は?

すべてではありませんが、ほとんどのコマンドが並列に実行されたときに複合コマンドの時間を測定する方法:

たとえば、コマンドは次のようになります。

comd1 ; comd2 & comd3 & comd4 & comd5 &

頑張った

time (comd1…)

ただし、出力を見ると、通常は単独で実行しても実行がすぐに完了しないcomd1ため、時間制限しかないと推測できます。comd2comd5

答え1

waitすべてのバックグラウンドプロセスを待つように1つを追加できます。

例:

$ time (sleep 1; sleep 2 & sleep 4 & wait)
real    0m5.007s
user    0m0.004s
sys     0m0.005s

$ time (sleep 1; sleep 6 & sleep 4 & wait)
real    0m7.011s
user    0m0.005s
sys     0m0.003s

関連情報