Shell脚本之获取时间间隔

2017-04-10  本文已影响204人  sytuzhouyong
tick_time=0
tock_time=0

# arg1=start, arg2=end, format: %s.%N  
function getTimeInterval
{  
    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)  

    # echo $start  
    # echo $end  

    # 10# 表示后面的值是10进制的
    time=$(( ( 10#$end_s - 10#$start_s ) * 1000 + ( 10#$end_ns / 1000000 - 10#$start_ns / 1000000 ) ))  
    echo " ---------- $time ms"  
}

function tick
{
    # %s: 毫秒  %N: 纳秒
    tick_time=$(date +%s.%N)
}

function tock
{
    tock_time=$(date +%s.%N)
    getTimeInterval $tick_time $tock_time
}

用法就是:

tick
shell 命令
tock




PS: 发现一个更加简便的方法

begin=$SECONDS
do something
end=$SECONDS
spend_time=$[end - begin]
上一篇 下一篇

猜你喜欢

热点阅读