すべてではありませんがほとんどのコマンドが並行して実行されたときに、複合コマンドの時間を計るにはどうすればよいですか?
たとえば、次のコマンドです。
comd1 ; comd2 & comd3 & comd4 & comd5 &
私は試した
time (comd1…)
しかし、出力から、comd1
からcomd2
は通常、単独で実行された場合に実行を完了するのにそれほど速くないため、comd5
のみがタイミングを合わせられたと推測できます。
wait
を追加して、すべてのバックグラウンドプロセスを待つことができます。
例:
$ 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