在脚本中测量时间

Ame*_*ina 8 shell-script time

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

start_measuring_time
Line 1
Line 2
..
Line N
stop_measuring_time
show_elapsed_time
Run Code Online (Sandbox Code Playgroud)

如果可能,我希望显示的时间是人类可读的(秒、分钟、小时、天等)。任何想法如何做到这一点?

fra*_*ous 12

你可以使用time

time (
Line 1
Line 2
..
Line N
)
Run Code Online (Sandbox Code Playgroud)

我认为时间的输出是人类可读的,但是如果您的脚本要以天为单位进行测量,那么请查看输出man time的格式选项。


enz*_*tib 7

您可以使用工具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
Run Code Online (Sandbox Code Playgroud)