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

suv*_*tha 15 unix

我有两个名为count1和count7的变量

count7=0
count7=$(($count7 + $count1))
Run Code Online (Sandbox Code Playgroud)

这显示错误"表达式未完成;需要更多令牌".

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

Jon*_*ler 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
$
Run Code Online (Sandbox Code Playgroud)

${count1:-0}如果$count1未设置,您还可以使用添加0 .


Jua*_*doy 7

ksh,bash,sh:

$ count7=0                     
$ count1=5
$ 
$ (( count7 += count1 ))
$ echo $count7
$ 5
Run Code Online (Sandbox Code Playgroud)


Vic*_*iah 7

var=$((count7 + count1))
Run Code Online (Sandbox Code Playgroud)

bash中的算术使用$((...))语法.

你不需要在里面的$符号$(( ))


wor*_*rty 0

我手下没有unix系统,但是试试这个:

count7=$((${count7} + ${count1}))

或者您的 shell 可能不支持此表达式。我觉得bash支持,但sh又不支持。

编辑:还有另一种语法,请尝试:

count7=`expr $count7 + $count1`
Run Code Online (Sandbox Code Playgroud)