シェルスクリプトでコマンドの実行時間を変数に格納
やりたいこと
シェルスクリプト上でコマンドの実行時間を変数に格納したかった.
dateコマンドで前後の時間差から求めると,ブラウザのプロセスなどのノイズが大きいため,timeコマンドで測りたい.
コマンド (この場合はユーザ空間での実行時間)
TIME=`(/usr/bin/time -f '%U' command 2>&1 1>/dev/null) 2>&1`
注意点
- commandの標準出力/エラーはtimeコマンドに受け継がれるので,捨てるなりしないと出力にゴミが入る
- ()で範囲を明示しないとリダイレクトが全部commandの方へ適用される