如何对并行执行的复合命令计时?

hum*_*nic 6 shell bash background-process time-utility

当大多数但不是所有命令并行执行时,如何对复合命令计时:

例如命令:

comd1 ; comd2 & comd3 & comd4 & comd5 &
Run Code Online (Sandbox Code Playgroud)

我试过

time (comd1…)
Run Code Online (Sandbox Code Playgroud)

但是,从输出我可以推测,只能comd1是定时的,因为comd2comd5通常不会这么快完成单独执行时执行。

rud*_*ier 5

您可以添加一个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
Run Code Online (Sandbox Code Playgroud)