一切都很好,但是当我做乘法时,它会给我"太多参数".错误

  • 本文关键字:quot 错误 太多 参数 很好 linux bash
  • 更新时间 :
  • 英文 :

#!/bin/sh
echo "Welcome to our calculator"
echo "Please insert your two numbers"
echo "Number 1:"
read number1
echo "Number 2:"
read number2
echo "Please type (+,-,/,*) if you want to add or substract or 
multiply or divide respectively: "
read operand
if [ $operand = '+' ]; then
echo `expr $number1 + $number2`

elif [ $operand = '-' ]; then
echo `expr $number1 - $number2`
elif [ $operand = '/' ]; then
echo `expr $number1 / $number2`
elif [ $operand = '*' ] ;then
echo `expr $number1 * $number2`
else
echo "Invalid Input"
fi
exit 0

我如何修复这个问题,但仍然能够保持if语句,因为我必须使用if语句专门为这个赋值,所以我不能使用循环或其他任何东西。提前谢谢你。

星号(*)令牌在bash中有特殊的含义,它本身扩展为当前目录中所有非隐藏文件的列表。在您的示例中,这个扩展被传递给expr命令,这没有任何意义。要将文字星号传递给命令,需要使用反斜杠()字符转义,如下所示:

echo `expr $number1 * $number2`

对于将来的调试,尝试用echo替换expr,以查看传递给命令的参数。

相关内容

最新更新