概要
簡単に秒単位で処理時間を測りたかったんです。
何番煎じかわかりませんね、、、
tmie(COMMUND)でもいいんですがファイルに書き出すことが出来ないので、ちゃんとechoで吐き出せてファイルに記録できるものが欲しかったです。
(私はtwitterAPIとかを併用して、大きな処理の端々にこのスクリプトを仕込んでなんの処理がいつ始まって何時間かかったのかなどを監視してたりしてます。見れば検討がつくとは思いますが、一度setStarttimeを呼べば、何度でもgetEndtimeでそれまでの時間が取得できます。ただ入れ子はダメです・・・。その場合は別スクリプトにしてしまうなどで対処して下さい。)
コード
以下がコードです。
処理時間を測りたいスクリプトで、読み込んでから実行することを想定しています。
(私の場合、runtimeを~/bin/に入れて利用しています)
runtime(.sh)
# !/bin/bash
function setStarttime() {
start_time=`date +%s`
}
function getEndtime() {
end_time=`date +%s`
SS=`expr ${end_time} - ${start_time}`
HH=`expr ${SS} / 3600`
SS=`expr ${SS} % 3600`
MM=`expr ${SS} / 60`
SS=`expr ${SS} % 60`
echo "${HH}:${MM}:${SS}"
}
使うには、処理時間を測りたいスクリプト内で以下のように予め読み込んでおいて、setStarttime, getEndtimeを実行させます。
test.sh
# /bin/bash
. runtime
setStarttime
# 処理
sleep 3
getEndtime
実行結果
> ./tset.sh
> 0:0:3