以下内容将显示给定命令执行所需的时间。我怎么做同样但精度更高(即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 ~]#
答案 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?中找到所有信息。