So erhalten Sie die Zeit mehrerer Befehle mit einer Schleife

12

Ich habe diesen Befehl:

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

Also command1und command2wird ausgeführt und ich bekomme die Real-, User- und Sys-Zeit auf die Konsole gedruckt.

Aber ich möchte, dass command1; command2;das 10-mal geschleift wird und dann möchte ich die Zeit bekommen, die für die beiden Befehle verwendet wird.

Tim
quelle

Antworten:

13

Sie können eine einfache forSchleife schreiben

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

Beachten Sie, dass ich bashstatt shfür die Schleife verwendet habe.

Bernhard
quelle
13
In Bash können Sie nurtime (for i in {1..10}; do sleep 1 ; done)
Frostschutz
1
@frostschutz: Deine scheint eine viel bessere Antwort zu sein. Bitte poste es als Antwort.
Chris Seite
14

Mit zsh:

time (repeat 10 {cmd1; cmd2})

zsh‚s repeatist geerbt von csh.

Mit tcsh:

time repeat 10 eval 'cmd1; cmd2'

Würden Sie die Zeit für jede Iteration und die Gesamtzeit am Ende geben.

Stéphane Chazelas
quelle