首页 > 解决方案 > 脚本的时间部分(运行时间)

问题描述

有了它,time script.sh您将获得运行脚本所需的时间,但是如果您想为脚本的一部分计时?

假设我想测试一个循环需要多长时间,我可以使用$SECONDS函数,但是有没有可以计算毫秒的计时器?

例如在长代码的中间:

    timerstart
    until [[ $loop -eq 10000 ]]; do
     ((++loop))

    echo "annoying"
    done
    timerstop

然后在脚本的最后,我只添加echo $timerresult,它会显示只运行所选代码而不是脚本的其余部分需要多少毫秒

我正在寻找这个解决方案,所以我可以测试部分脚本的“缓慢”..这可以解决吗?

标签: linuxbashtimemillisecondsseconds

解决方案


对于 Bash 5.0 及更高版本,您可以使用$EPOCHREALTIME

[...] 它扩展到自 Unix 纪元以来的秒数,作为具有微秒粒度的浮点值 [...]

start=$EPOCHREALTIME
for ((i = 0; i < 10000; ++i)); do
    echo "annoying"
done
stop=$EPOCHREALTIME

elapsed=$(bc -l <<< "$stop - $start")

推荐阅读