20

I have this command:

time -p sh -c 'command1; command2;'

So command1and command2 is executed and I get the real, user and sys time printed on the console.

But I want that command1; command2; is looped 10 times and then I want to get the time which is used for the two commands.

Tim
  • 303
  • 1
  • 2
  • 6

3 Answers3

25

With zsh:

time (repeat 10 {cmd1; cmd2})

zsh's repeat is inherited from csh.

With tcsh:

time repeat 10 eval 'cmd1; cmd2'

Would give you the time for each iteration and the overall time at the end.

Stéphane Chazelas
  • 522,931
  • 91
  • 1,010
  • 1,501
20

You can write a simple for-loop

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

Note that I used bash instead of sh for the loop.

Bernhard
  • 11,992
  • 4
  • 59
  • 69
6

For simple for loops you can time the for loop directly:

time for i in {1..10}; do echo $i; sleep 1; done
qwr
  • 647
  • 7
  • 11