web-dev-qa-db-ja.com

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

私はシェルスクリプトを使って仕事での残業を計算するプロジェクトに取り組んでいます。 2つの入力があり、自分の番号が800 = 8時間を超えているかどうかを確認したいと思います。それが大きい場合は、結果をテキストファイルに出力する必要があります。それは私の違いを印刷する必要があります。

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

計算結果を印刷する方法がないので迷ってしまいます。

1
peter

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

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

exprとバッククォートは時代遅れであり、ここでコマンド置換を行う必要はありません。

0
Kusalananda