18

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.

3 Answers 3

23

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.

18

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.

3
  • 21
    In bash you can just time (for i in {1..10}; do sleep 1 ; done) Mar 24, 2013 at 18:47
  • 2
    @frostschutz: Yours seems like a much better answer. Please post it as an answer.
    – Chris Page
    Jan 24, 2016 at 21:58
  • anyway to do this for multiline forloop? Dec 10, 2020 at 15:14
5

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

time for i in {1..10}; do echo $i; sleep 1; done

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.