我正在做一个项目,用 shell 脚本计算我的加班时间。我有两个输入,想知道我的数字是否超过 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
反引号已经过时了,您甚至不需要在这里进行命令替换。