LoginSignup
12
11

More than 5 years have passed since last update.

Bashで処理時間(時分秒)を記録するためのスクリプト

Last updated at Posted at 2013-12-18

概要

簡単に秒単位で処理時間を測りたかったんです。

何番煎じかわかりませんね、、、

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
12
11
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11