当大多数但不是全部命令并行执行时,如何对复合命令计时:
例如命令:
comd1 ; comd2 & comd3 & comd4 & comd5 &
我试过
time (comd1…)
但从输出中我可以推测,仅comd1
是计时的,因为单独执行时comd2
通常comd5
不会那么快完成执行。
答案1
您可以添加一个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