2014-01-28 238 views
1
echo Enter 2 values: 
read val1 val2 
c = `expr $val1 + $val2` 
echo $c 

,我得到以下问题:执行shell脚本程序

addition.sh:3:addition.sh:C:没有发现

请帮帮我!!

+0

使用'c = $((val1 + val2))'而不是'c = $(expr $ val1 + $ val2';'expr'命令在现代shell中已经(大部分)已经过时。 – chepner

回答

4

这是因为你把变量'c'和'='之间的空格。因此,壳假定c是一个命令和=,和expr $val1 + $val2是给定的参数:

所以不是

c = `expr $val1 + $val2` 
^^

写入

c=$(expr $val1 + $val2) 

总之:

echo Enter 2 values: 
read val1 val2 
c=$(expr $val1 + $val2) 
echo $c 

请注意,你也可以得到th的结果Ë总和与:

echo $((val1 + val2)) 

作为一般的规则,使用var=$(command)保存命令输出在变量中。