Bashスクリプトに合計実行時間を記録する

Bashスクリプトに合計実行時間を記録する

次のスクリプトがあります。実行すると、合計Startend時間が「result.txt」ファイルに印刷されます。

end-startしかし、合計実行時間()も記録したかったのですが、結局、横に何も記録されていないまま返却するecho runtineようになりました。runtime:私は何が間違っていましたか?

#!/bin/bash
clear
echo "Test 001" > result.txt
echo "start time: " $(date +%T) >> result.txt
start=`date +%s`
#DO STUFF HERE
end=`date +%s`
echo "end time: " $(date +%T) >> result.txt
runtime=$((end-start))
echo "runtime: " $(runtime) >> result.txt
echo " - - - "

答え1

echoステートメントにスペルエラーがあります。しなければならない

#!/bin/bash
#clear
echo "Test 001" > result.txt
echo "start time: " $(date +%T) >> result.txt
start=`date +%s`
#DO STUFF HERE
end=`date +%s`
echo "end time: " $(date +%T) >> result.txt
runtime=$((end-start))
echo "runtime: $runtime" >> result.txt
echo " - - - "

答え2

まず、ホイールを再発明しています。このtimeコマンドの目的は次のとおりです。

$ time script.sh
real    0m0.005s
user    0m0.000s
sys     0m0.004s

その後、構文エラーが発生します。

echo "runtime: " $(runtime) >> result.txt

構文$(foo)はコマンドの置換であり、実行を試みますfoo

 echo "runtime: $runtime" >> result.txt

ただし、質問に受け取ったエラーメッセージを常に含める必要があります。

関連情報