Linux 在shell脚本中动态添加2个数字

Linux 在shell脚本中动态添加2个数字,linux,bash,shell,unix,Linux,Bash,Shell,Unix,我试图从用户那里获取输入,然后根据输入执行加法运算或减法运算。选项1用于加法,选项2用于减法。我得到的错误是: number.sh:未找到第12行:d:命令 (用于添加第12行) number.sh:未找到第17行:d:命令 (对于减法第17行) 代码如下: #!/bin/bash echo "enter choice" echo "enter 1 for addition" echo "enter 2 for subtraction" read a echo "entered choice i

我试图从用户那里获取输入,然后根据输入执行加法运算或减法运算。选项1用于加法,选项2用于减法。我得到的错误是:

number.sh:未找到第12行:d:命令 (用于添加第12行)

number.sh:未找到第17行:d:命令 (对于减法第17行)

代码如下:

#!/bin/bash
echo "enter choice"
echo "enter 1 for addition"
echo "enter 2 for subtraction"
read a
echo "entered choice is" $a
echo "now enter 2 numbers"
if [ $a = 1]; then
read b
read c
d = `expr $b + $c`
echo "addition of 2 numbers is" $d
elif [ $a = 2]; then
read b
read c
d = `expr $b - $c`
echo "subtraction of 2 numbers is" $d
else
echo "enter valid choice"
fi

您的作业周围有多余的空格,而
[]
表达式周围缺少空格。这是一个更正的版本。请注意,当您使用两个
read
调用时,在输入时需要在其间换行。也就是说,您必须在命令行上键入
1 2 3
,才能获得
5
的结果

#!/bin/bash
echo "enter choice"
echo "enter 1 for addition"
echo "enter 2 for subtraction"
read a
echo "entered choice is" $a
echo "now enter 2 numbers"
if [ $a = 1 ]; then
read b
read c
d=`expr $b + $c`
echo "addition of 2 numbers is" $d
elif [ $a = 2 ]; then
read b
read c
d=`expr $b - $c`
echo "subtraction of 2 numbers is" $d
else
echo "enter valid choice"
fi

第12行和第17行的
=
标志周围不应有空格。删除那些空格。
在bash中,赋值操作符
=

周围不应该有空格,赋值之间不应该有空格。它说找不到命令。你能修改它并发布吗?它工作了,但现在我得到了这样一个结论:输入的数字的减法是1-2,不是完美的答案。我假设你复制粘贴了你的实际代码。阅读错误,他们几乎完全解释了问题所在。或者,您可以查看常见的bash错误,甚至可以使用shellcheck.com为您完成所有工作。