1秒未満の時間を取得
dateコマンドで+%Nオプションをつけると、000000000から999999999までのナノ秒単位で時間を返します。
ちなみに、単位の換算ですが、1秒は1,000,000,000ナノ秒です。
$ date +%N
479374300
したがって、これは「479,374,300ナノ秒」であることを示しています。
ただ、あまり小さな値は信用しないほうがいいでしょう。どれぐらいまで信用していいのかは知りません。
プログラムの実行時間を計測する
では早速、実行時間の計測をしましょう。
ここでは、1秒かからないプログラムとして、適当にecho "Hello, World!"を採用しました。
#!/bin/bash
NANOTIME1=`date +%N`
echo "Hello, World!"
NANOTIME2=`date +%N`
NANOTIME=`echo "scale=3; (${NANOTIME2} - ${NANOTIME1})/1000000000" | bc`
echo "It took ${NANOTIME} sec"
bcコマンドを使って小数の計算をし、単位を秒に変換しています。手元の環境では、"It took .050 sec"と出力されました。
なお、1秒以上かかるプログラムの実行時間を計測する場合については、以前Qiitaに投稿しています。