
次のスクリプトがあります。実行すると、合計Start
とend
時間が「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
ただし、質問に受け取ったエラーメッセージを常に含める必要があります。