我有兩個變量稱爲COUNT1和count7如何在Unix shell腳本中的變量中添加值?
count7=0
count7=$(($count7 + $count1))
這顯示了一個錯誤「表達是不完整的;需要更多的令牌」。
我應該如何添加這兩個變量?
我有兩個變量稱爲COUNT1和count7如何在Unix shell腳本中的變量中添加值?
count7=0
count7=$(($count7 + $count1))
這顯示了一個錯誤「表達是不完整的;需要更多的令牌」。
我應該如何添加這兩個變量?
我沒有在UNIX系統下我的手,但是試試這個:
count7=$((${count7} + ${count1}))
或者你可能有不支持這種表達一個殼。 我認爲bash
支持它,但sh
不支持。
編輯:還有另外一種語法,請嘗試:
count7=`expr $count7 + $count1`
什麼是count1
設置爲?如果它沒有設置,它看起來像空字符串 - 這將導致無效的表達式。你在使用哪種外殼?
在bash 3.x中在MacOS X 10.7.1:
$ count7=0
$ count7=$(($count7 + $count1))
-sh: 0 + : syntax error: operand expected (error token is " ")
$ count1=2
$ count7=$(($count7 + $count1))
$ echo $count7
2
$
你也可以使用${count1:-0}
加0,如果$count1
沒有設置。
非常有用!謝謝! – emanuelcds
這裏有一個簡單的例子來添加兩個變量:
var1=4
var2=3
let var3=$var1+$var2
echo $var3
上面的腳本可能無法在KSH運行。你必須使用'let'opparand來確定這個值然後回顯它。
val1=4
val2=3
let val3=$val1+$val2
echo $val3
var=$((count7 + count1))
算術Bash使用$((...))
語法。
你不需要$
符號$(())
echo "$x"
x=10
echo "$y"`enter code here`
y=10
echo $[$x+$y]
回答中:20
你可以做到這一點。對於快速計算可以更快:
echo $[2+2]
什麼是'count1'設置爲?如果它沒有設置,它看起來像空字符串 - 這將導致無效的表達式。你在使用哪種外殼? –
kshell和count1設置爲某個值。有沒有其他的方法可以讓我們從數組這樣的循環中連續地添加計數? – suvitha
然後你需要解釋你真正的問題是什麼。一個可能的問題是,如果您有一個管道,並且將結果添加到管道中的一個循環中,那麼它將在一個子shell中處理,並且您無法獲取父shell中的更新結果。但是在我們做出診斷之前,你需要展示更多的代碼。你強烈展示的內容表明'$ count1'沒有設置爲你認爲它設置的內容。 –