如何在Unix shell脚本中添加变量值?

时间:2011-08-30 15:40:13

标签: unix

我有两个名为count1和count7

的变量
count7=0
count7=$(($count7 + $count1))

这显示错误“表达式未完成;需要更多令牌”。

我应该如何添加这两个变量?

9 个答案:

答案 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)

kshbashsh

$ 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