如何用循环获取多个命令的时间

Tim*_*Tim 14 time

我有这个命令:

time -p sh -c 'command1; command2;'
Run Code Online (Sandbox Code Playgroud)

所以command1并被command2执行,我得到了在控制台上打印的真实时间、用户时间和系统时间。

但我希望command1; command2;循环 10 次,然后我想获得用于这两个命令的时间。

Sté*_*las 21

使用 zsh:

time (repeat 10 {cmd1; cmd2})
Run Code Online (Sandbox Code Playgroud)

zshrepeat继承自csh.

tcsh

time repeat 10 eval 'cmd1; cmd2'
Run Code Online (Sandbox Code Playgroud)

会给你每次迭代的时间和最后的总时间。


Ber*_*ard 15

你可以写一个简单的for-loop

 time -p bash -c "for (( i=0; i<10; i++ )); do command1; command2; done;"
Run Code Online (Sandbox Code Playgroud)

请注意,我使用了bash而不是shfor 循环。

  • 在 bash 中,你可以只`time (for i in {1..10}; do sleep 1 ; done)` (19认同)
  • @frostschutz:你的答案似乎更好。请将其发布为答案。 (2认同)

qwr*_*qwr 6

对于简单的 for 循环,您可以直接为 for 循环计时:

time for i in {1..10}; do echo $i; sleep 1; done
Run Code Online (Sandbox Code Playgroud)