測量執行時間

如果你的對象是一個command或execution file,只要直接使用time就可達成:

time ./test.sh > /dev/null

output:

real    0m0.020s
user    0m0.009s
sys     0m0.020s

如果你的對象是script內的一組動作,且不需要精確到毫秒,可以透過SECONDS變數:

START=${SECONDS}
 
# some operations
sleep 5
 
END=$(($SECONDS - $START))
 
echo $END

與$SECONDS方法類似,但可以精確到nano second(10^-9)的差距:

START=`date +%s%N`
echo $START
 
# some operations
sleep 1
 
END=`date +%s%N`
echo $END
 
END=$(($END - $START))
echo $END
 
# 換算為millisecond
END=$(($END / 1000000))
echo $END

output:

1467450293336690574
1467450294338625297
1001934723
1001