このコードをスクリプトに入れたいですか、それともスクリプトを開始するプロセスから実行しますか?
後者の場合、「時間」予約語を使用して、返された内容を解析して、スクリプトにかかる時間を取得できます。
スクリプト内からこれを行う場合は、変数 SECONDS をゼロに設定できます。その後、その変数を参照するたびに、経過秒数に更新されます。したがって、スクリプトの最初に「SECONDS=0」を配置すると、経過時間が必要なときはいつでも SECONDS 変数に入れられます。
コマンドラインで $SECONDS トリックを使用することもできます。例:
$ SECONDS=0; sleep 5 ; echo "that took approximately $SECONDS seconds"
time 予約語と SECONDS 変数はどちらも bash のマニュアル ページに記載されています。
これは Bash と Zsh で動作します:
# Set time format to seconds
TIMEFORMAT=%R
# Time a process
PROC_TIME=$(time (insert command here >/dev/null 2>&1) 2>&1)
echo $PROC_TIME
- 最初の 2 つのリダイレクトは、プロセスの出力を隠します ">/dev/null 2>&1"
- 「time」は stderr に時刻を出力するため、最後のリダイレクトが必要です