【Linux】shell: 獲取時間間隔到毫秒、微秒級別


對於shell,通過date命令可以獲取到當前時間,還可以設定特殊格式,看help你可以看到下面兩個好用的參數:

%s     seconds since '00:00:00 1970-01-01 UTC' (a GNU extension)
%N     nanoseconds (000000000..999999999)

這里%s表示當前時間的秒數,而%N表示當前時間的納秒部分,即1秒以下的那部分,

那么通過%s%N結合使用,我們就可以拿到納秒級別的數據了。

#!/bin/sh
function getTiming(){
    start=$1
    end=$2

    start_s=`echo $start | cut -d '.' -f 1`
    start_ns=`echo $start | cut -d '.' -f 2`
    end_s=`echo $end | cut -d '.' -f 1`
    end_ns=`echo $end | cut -d '.' -f 2`

    time_micro=$(( (10#$end_s-10#$start_s)*1000000 + (10#$end_ns/1000 - 10#$start_ns/1000) ))
    time_ms=`expr $time_micro/1000  | bc `

    echo "$time_micro microseconds"
    echo "$time_ms ms"
}

begin_time=`date +%s.%N`
sleep 10
end_time=`date +%s.%N`

getTiming $begin_time $end_time

 

執行腳本,看到輸出結果了么?

10001430 microseconds
10001 ms

ok,搞定。

 

對不同單位的時間有所混淆么?下面是備忘。  

1s=1000ms

1ms=1000 microseconds

1microsecond=1000 nanoseconds

 

參考資料:http://blog.csdn.net/gengshenghong/article/details/7583580


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM