【发布时间】:2022-01-28 01:37:41
【问题描述】:
我正在尝试创建一个计算器,它可以在 shell 脚本上进行基本数学运算,但是当我尝试 乘 两个数字时,它一直返回此语法错误 (standard_in) 1: syntax error,我试图找到一些解决方案,但到目前为止没有任何帮助。
这是我的代码:
echo "====== Calculator ======"
echo " "
# It will save both numbers to the variables
echo "Type a number: "
read numA
echo "Type another number: "
read numB
echo " "
# It will give a list of possible operations
echo "Choose an option"
echo "------------------"
echo "1)Addition"
echo "------------------"
echo "2)Subtraction"
echo "------------------"
echo "3)Multiplication"
echo "------------------"
echo "4)Division"
echo "------------------"
echo " "
read -s opt
# It will make the math behind each operation
case $opt in
1)result=`echo $numA + $numb | bc`;;
2)result=`echo $numA - $numB | bc`;;
3)result=`echo $numA * $numB | bc`;;
4)result=`echo "scale=2; $numA / $numB" | bc`;;
esac
echo "Result: $result"
【问题讨论】:
-
*是文件名通配符,将扩展为当前目录中的文件列表。您还应该对变量进行双引号,并且...嗯,几乎所有内容。我还建议使用$( )而不是反引号。 -
这能回答你的问题吗? When should I wrap quotes around a shell variable?(同样的建议适用于字符串和变量。)
-
顺便说一句,欢迎来到 Stack Overflow!请使用tour 并阅读How to Ask。如需日后调试帮助,请发送minimal reproducible example,包括最少的代码、示例输入和预期输出。
-
另外顺便说一句,您可能想使用
selectcommand。这比编写自己的菜单要容易得多。