このスレッドは、スクリプトの実行にかかる時間を測定する方法を示しています。私の場合、スクリプト内の2点間の時間を測定することに興味が あります。これが私がこれをどのように使用したいかの例です:
start_measuring_time
Line 1
Line 2
..
Line N
stop_measuring_time
show_elapsed_time
可能であれば、表示される時間を人間が読めるようにしたい(秒、分、時間、日など)。これを行う方法はありますか?
このスレッドは、スクリプトの実行にかかる時間を測定する方法を示しています。私の場合、スクリプト内の2点間の時間を測定することに興味が あります。これが私がこれをどのように使用したいかの例です:
start_measuring_time
Line 1
Line 2
..
Line N
stop_measuring_time
show_elapsed_time
可能であれば、表示される時間を人間が読めるようにしたい(秒、分、時間、日など)。これを行う方法はありますか?
回答:
date
util を使用できます。
#!/bin/bash
start_measuring_time() {
read s1 s2 < <(date +'%s %N')
}
stop_measuring_time() {
read e1 e2 < <(date +'%s %N')
}
show_elapsed_time() {
echo "$((e1-s1)) seconds, $((e2-s2)) nanoseconds"
}
start_measuring_time
sleep 2
stop_measuring_time
show_elapsed_time
Tend-Tstart
と後にエコーを入れないのはなぜ$(
あなたは単に使うことができますtime
:
time (
Line 1
Line 2
..
Line N
)
時間の出力はそのまま人間が読めると思いますが、スクリプトで日数などを測定するman time
場合は、出力のフォーマットオプションを確認してください。