我正在尝试从用户那里获取输入,然后根据该输入执行添加操作或执行减法操作。选项1用于加法,2用于减法。我得到的错误是:
number.sh:line 12:d:找不到命令 (对于加法第12行)
number.sh:line 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
答案 0 :(得分:1)
您的作业周围有额外的空格,[]
表达式周围缺少空格。这是一个更正版本。请注意,当您使用两个read
调用时,在提供输入时需要在两者之间使用换行符。也就是说,您必须在命令行上键入1 <Enter> 2 <Enter> 3 <Enter>
才能获得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
答案 1 :(得分:-1)
第12和17行的=
符号周围不应有空格。删除这些空格。
在bash中,赋值运算符=
周围不应有空格。