私はシェルスクリプトを使って仕事での残業を計算するプロジェクトに取り組んでいます。 2つの入力があり、自分の番号が800 = 8時間を超えているかどうかを確認したいと思います。それが大きい場合は、結果をテキストファイルに出力する必要があります。それは私の違いを印刷する必要があります。
if [ $var1 -gt 800 ]; then
`expr $var1-800`
echo Overtime: "" >> $path
計算結果を印刷する方法がないので迷ってしまいます。
最新のbashを使用してこれを試してください(バッククォートやexpr
は使用しないでください):
if ((var1 > 800)); then
overtime=$((var1 - 800)) # variable assignation with the arithmetic
echo "Overtime: $overtime"
fi
または単に:
if ((var1 > 800)); then
overtime="Overtime: $((var1 - 800))" # concatenation of string + arithmetic
fi
チェック bash演算
if (( var1 > 800 )); then
printf 'Overtime: %d\n' "$(( var1 - 800 ))" >>"$path"
fi
expr
とバッククォートは時代遅れであり、ここでコマンド置換を行う必要はありません。