这个线程展示如何测量运行脚本所需的时间。就我而言,我对测量时间感兴趣 脚本内两点之间。这是我想如何使用它的示例:
start_measuring_time
Line 1
Line 2
..
Line N
stop_measuring_time
show_elapsed_time
我希望显示的时间是人类可读(秒、分钟、小时、天等),如果可能的话。有什么想法如何做到这一点?
答案1
你可以只使用time
:
time (
Line 1
Line 2
..
Line N
)
我认为时间的输出是人类可读的,但如果您的脚本要以天等为单位进行测量,那么请检查man time
输出的格式选项。
答案2
您可以使用date
实用程序:
#!/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
答案3
尝试timerscript.sh的示例:
#!/bin/bash
#timing in minutes with %m
start=`date +%m`
echo 'Start:' $start
#do something e.g. wait for 1.30 minutes
sleep 90
`end=`date +%m`
echo 'End: '$end
echo 'runtime: '$runtime