当我尝试使用运算符“/”以及数字 4.5 和 2 时,我的计算器会生成标题中提到的错误。
这(就像错误状态一样)很可能是由于 4.5 中小数点后面的内容造成的,但我不知道如何解决这个问题,也不知道为什么脚本实际上能够在之后给我正确的结果。
Code:
#!/bin/bash
read -p "Operator: " operator
read -p "First number: " ch1
read -p "Second number: " ch2
case $operator in
"+") echo "scale=2; $ch1+$ch2" | bc -l;;
"/") if [[ $ch1 -eq 0 || $ch2 -eq 0 ]]
then
echo "Nope..."
else
echo "scale=2; $ch1/$ch2" | bc -l
fi
;;
esac
完整输出:
./script2.sh: line 9: [[: 4.5: syntax error: invalid arithmetic operator (error token is ".5")
2.25
尽管产生浮点结果,Bash 不支持整数以外的其他类型的参数,因此您需要调用外部工具,例如bc
对于你的数学或坚持只使用整数。
See the bash 文档 https://www.gnu.org/software/bash/manual/bash.html,“6.5 壳算术”部分:
shell 允许对算术表达式进行求值,作为 shell 扩展之一,或者使用 (( 复合命令、let 内置命令或内部声明的 -i 选项。
评估以固定宽度整数完成不检查溢出,但除以 0 会被捕获并标记为错误
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)