ループを介して複数のコマンドの時間を取得する方法

ループを介して複数のコマンドの時間を取得する方法

私は次のコマンドを持っています:

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

そのため、実行するcommand1command2コンソールに実際のユーザーとシステム時間が出力されます。

しかし、私はcommand1; command2;10回繰り返し、これら2つのコマンドにかかる時間を取得したいと思います。

答え1

zshを使う:

time (repeat 10 {cmd1; cmd2})

zshからrepeat継承されますcsh

そしてtcsh

time repeat 10 eval 'cmd1; cmd2'

各反復の時間と最後に合計時間が与えられます。

答え2

for簡単なループを書くことができます

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

bashforループの代わりにshforループを使用しています。

答え3

単純なforループでは、forループの時間を直接測定できます。

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

関連情報