显示shell命令的执行时间,准确性更高

时间:2013-06-30 13:07:37

标签: linux bash command-line

以下内容将显示给定命令执行所需的时间。我怎么做同样但精度更高(即5.23秒)?

[root@localhost ~]# start=`date +%s`; sleep 5  && echo execution time is $(expr `date +%s` - $start) seconds
execution time is 5 seconds
[root@localhost ~]#

3 个答案:

答案 0 :(得分:2)

您可以尝试使用time命令。

time sleep 5

除了经过的挂钟时间外,它还会告诉您进程消耗了多少CPU时间,以及在应用程序中花费了多少CPU时间以及操作系统调用的时间。

答案 1 :(得分:1)

使用time命令:

time COMMAND

答案 2 :(得分:0)

您还可以使用SECONDS变量:

Bash Variables section of the reference manual中,您会看到:

  

SECONDS此变量扩展为自​​shell启动以来的秒数。对此变量的赋值会将计数重置为指定的值,并且展开的值将成为分配的值加上自分配以来的秒数。

因此,以下内容:

SECONDS=0; sleep 5; echo "I slept for $SECONDS seconds"

应该输出5.它仅适用于精确度为1秒的测量时间,但它肯定比使用date命令显示的方式好得多。

如果需要更高的精度,可以使用time命令,但在变量中输出此命令有点棘手。您可以在BashFAQ/032: How can I redirect the output of time to a variable or file?中找到所有信息。