下面將顯示給定命令執行所花費的時間。我該怎麼做,但精度更高(即5.23秒)?更精確地顯示shell命令的執行時間
[[email protected] ~]# start=`date +%s`; sleep 5 && echo execution time is $(expr `date +%s` - $start) seconds
execution time is 5 seconds
[[email protected] ~]#
下面將顯示給定命令執行所花費的時間。我該怎麼做,但精度更高(即5.23秒)?更精確地顯示shell命令的執行時間
[[email protected] ~]# start=`date +%s`; sleep 5 && echo execution time is $(expr `date +%s` - $start) seconds
execution time is 5 seconds
[[email protected] ~]#
你可以嘗試使用時間命令。
time sleep 5
除了過去掛鐘時間它會告訴你該進程的CPU多少時間消耗,又有多少的CPU時間的應用程序花了,有多少在操作系統調用。
使用time
命令:
time COMMAND
您還可以使用SECONDS
變量:
在Bash Variables section of the reference manual你會讀到:由於Shell啓動
SECONDS
這個變量擴展的秒數。賦值給這個變量會將計數值重新設置爲賦值的值,並且擴展值將變爲賦值的值加上賦值後的秒數。
因此,以下:
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?中找到所有信息。