Как получить время нескольких команд с помощью цикла

12

У меня есть эта команда:

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

Так command1и command2выполняется, и я получаю реальное, пользовательское и системное время, напечатанное на консоли.

Но я хочу, чтобы command1; command2;это было зациклено 10 раз, а затем я хочу получить время, которое используется для двух команд.

Тим
источник

Ответы:

13

Вы можете написать простой forцикл

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

Обратите внимание, что я использовал bashвместо shцикла.

Бернхард
источник
13
В bash вы можете простоtime (for i in {1..10}; do sleep 1 ; done)
frostschutz
1
@frostschutz: Твой ответ выглядит намного лучше. Пожалуйста, отправьте это как ответ.
Крис Пейдж
14

С зш:

time (repeat 10 {cmd1; cmd2})

zsh«s repeatнаследуется от csh.

С tcsh:

time repeat 10 eval 'cmd1; cmd2'

Даст вам время для каждой итерации и общее время в конце.

Стефан Шазелас
источник