我制作了这个简单的脚本,要求您输入被除数和除数,然后显示商:
#!/bin/bash
read -p "Dividend? " dividend
read -p "Divisor? " divisor
if [ $divisor = "0" ]
then
echo "∞"
else
echo "$((scale=4;$dividend / $divisor))" | bc
fi
但是如果您输入的除数不等于 0,则会显示此语法错误:
./division.sh: line 8: scale=4;5 / 4: syntax error: invalid arithmetic operator (error token is ";5 / 4")
我不知道为什么这不起作用,我看到了一个线程这是使用 bc 获取小数的方法。有人知道哪里出了问题吗?提前致谢。
答案1
由于您正在使用bc
进行计算,因此无需使用bash
算术扩展($((...))
)。
此外,你的语法算术扩展是错误的,因为;
没有算术运算符。其次,这种方法只能输出整数。
正确的脚本如下所示。
#!/bin/bash
read -p "Dividend? " dividend
read -p "Divisor? " divisor
if [ $divisor = "0" ]
then
echo "∞"
else
echo "scale=4;$dividend / $divisor" | bc
fi