我有两个名为count1和count7
的变量count7=0
count7=$(($count7 + $count1))
这显示错误“表达式未完成;需要更多令牌”。
我应该如何添加这两个变量?
答案 0 :(得分:22)
count1
设置为什么?如果没有设置,它看起来像空字符串 - 这将导致无效的表达式。你在使用哪个shell?
在MacOS X 10.7.1上的Bash 3.x中:
$ count7=0
$ count7=$(($count7 + $count1))
-sh: 0 + : syntax error: operand expected (error token is " ")
$ count1=2
$ count7=$(($count7 + $count1))
$ echo $count7
2
$
如果未设置${count1:-0}
,您还可以使用$count1
添加0。
答案 1 :(得分:7)
var=$((count7 + count1))
bash中的算术使用$((...))
语法。
$
$(( ))
符号
答案 2 :(得分:6)
在ksh
,bash
,sh
:
$ count7=0
$ count1=5
$
$ (( count7 += count1 ))
$ echo $count7
$ 5
答案 3 :(得分:1)
以下是添加两个变量的简单示例:
var1=4
var2=3
let var3=$var1+$var2
echo $var3
答案 4 :(得分:1)
上述脚本可能无法在ksh中运行。你必须使用'let'opparand来确定值,然后回显它。
val1=4
val2=3
let val3=$val1+$val2
echo $val3
答案 5 :(得分:1)
你也可以这样做。可以更快地进行快速计算:
echo $[2+2]
答案 6 :(得分:0)
我手上没有unix系统,但试试这个:
count7=$((${count7} + ${count1}))
或许你有一个不支持这个表达式的shell。
我认为bash
确实支持它,但sh
没有。
编辑:还有另一种语法,请尝试:
count7=`expr $count7 + $count1`
答案 7 :(得分:0)
echo "$x"
x=10
echo "$y"`enter code here`
y=10
echo $[$x+$y]
答案:20
答案 8 :(得分:0)
read num1
read num2
sum=`expr $num1 + $num2`
echo $sum