Edited at

bashのSECONDS変数で簡単に処理時間を測定する

More than 5 years have passed since last update.

bashで特定の処理にかかった秒数を測定するには、dateコマンドで前後の秒数をとって引き算するのが一般的です。

#!/bin/bash

start_time=`date +%s`

### 時間測定したい処理
sleep 3

end_time=`date +%s`

time=$((end_time - start_time))

echo $time

しかし別の方法として、bashの特殊変数の1つであるSECONDS使う方法があります。

この変数を参照するとbashが起動されてからの秒数が取得でき、任意のタイミングで代入によってリセットすることができます。

$ echo $SECONDS

31
$ echo $SECONDS
35
$ SECONDS=0
$ echo $SECONDS
2
$ echo $SECONDS
5

この変数を使うと、とても簡単に処理時間が測定できます。

#!/bin/bash

SECONDS=0

### 時間測定したい処理
sleep 3

time=$SECONDS

echo $time

$ sh seconds.sh

3