テキストファイルのエコー計算

テキストファイルのエコー計算

私はシェルスクリプトを使用して残業時間を計算するプロジェクトを進めています。 2つの入力があり、私の数字が800 = 8時間を超えるかどうかを知りたいです。大きい場合は、結果を自分のテキストファイルに印刷する必要があります。私の違いを印刷する必要があります。

if [ $var1 -gt 800 ]; then
`expr $var1-800`
echo Overtime: "" >> $path 

すると、計算結果を印刷する方法がわからないので、迷子になります。

答え1

最新の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 算術

答え2

if (( var1 > 800 )); then
    printf 'Overtime: %d\n' "$(( var1 - 800 ))" >>"$path"
fi

exprバックティックは使用されなくなり、ここではコマンドの置き換えも必要ありません。

関連情報