测量脚本内的时间

测量脚本内的时间

这个线程展示如何测量运行脚本所需的时间。就我而言,我对测量时间感兴趣 脚本内两点之间。这是我想如何使用它的示例:

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

相关内容