如何在Unix shell脚本中在变量中添加值?
我有两个变量叫count1和count7如何在Unix shell脚本中在变量中添加值?,unix,Unix,我有两个变量叫count1和count7 count7=0 count7=$(($count7 + $count1)) 这显示一个错误“表达式不完整;需要更多标记” 如何添加这两个变量?我手头没有unix系统,但请尝试以下方法: count7=$(${count7}+${count1})) 或者你的shell不支持这个表达式。 我认为bash确实支持它,但是sh不支持它 编辑:还有另一种语法,请尝试: count7=`expr $count7 + $count1` count1设置为什么?如
count7=0
count7=$(($count7 + $count1))
这显示一个错误“表达式不完整;需要更多标记”
如何添加这两个变量?我手头没有unix系统,但请尝试以下方法:
count7=$(${count7}+${count1}))
或者你的shell不支持这个表达式。
我认为bash
确实支持它,但是sh
不支持它
编辑:还有另一种语法,请尝试:
count7=`expr $count7 + $count1`
count1
设置为什么?如果未设置,则看起来像是空字符串-这将导致表达式无效。你用的是哪个外壳
在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
未设置,也可以使用${count1:-0}
添加0。下面是一个简单的示例,可以添加两个变量:
var1=4
var2=3
let var3=$var1+$var2
echo $var3
在
ksh
,bash
,sh
:
$ count7=0
$ count1=5
$
$ (( count7 += count1 ))
$ echo $count7
$ 5
上述脚本可能无法在ksh中运行。您必须使用“let”opparand来赋值,然后回显它
val1=4
val2=3
let val3=$val1+$val2
echo $val3
bash中的算术使用$(…)
语法
您不需要在$(())
回答:20你也可以这样做。可以更快地进行快速计算:
echo $[2+2]
count1
设置为什么?如果未设置,则看起来像是空字符串-这将导致表达式无效。您使用的是哪个shell?kshell和count1设置为某个值。有没有其他方法可以将循环数组中不断出现的计数相加?那么,您需要解释真正的问题是什么。一个可能的问题是,如果您有一个管道,并且正在管道中的循环中添加结果,那么它将在子shell中处理,并且您无法在父shell中获得更新的结果。但在我们做出诊断之前,您需要显示更多的代码。您显示的内容强烈表明,$count1
未设置为您认为设置的值。非常有用!非常感谢。
echo "$x"
x=10
echo "$y"`enter code here`
y=10
echo $[$x+$y]
echo $[2+2]
read num1
read num2
sum=`expr $num1 + $num2`
echo $sum