對於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