Ich habe versucht, eine numerische Variable sowohl mit var=$var+1
als auch mit var=($var+1)
zu inkrementieren, ohne Erfolg. Die Variable ist eine Zahl, obwohl die Bash sie als String zu lesen scheint.
Bash Version 4.2.45(1)-release (x86_64-pc-linux-gnu) auf Ubuntu 13.10.
Es gibt mehr als eine Möglichkeit, eine Variable in der Bash zu inkrementieren, aber was Sie versucht haben, ist nicht korrekt.
Sie können zum Beispiel arithmetische Expansion verwenden:
var=$((var+1))
((var=var+1))
((var+=1))
((var++))
Oder Sie können let
verwenden:
let "var=var+1"
let "var+=1"
let "var++"
Siehe auch: http://tldp.org/LDP/abs/html/dblparens.html.
var=$((var + 1))
Die Arithmetik in der Bash verwendet die Syntax $((...))
.
Es gibt auch das hier:
var=`expr $var + 1`
Achten Sie auf die Leerzeichen und auch ` ist nicht '
Radu's Antworten und die Kommentare sind zwar ausführlich und sehr hilfreich, aber sie sind bash-spezifisch. Ich weiß, dass Sie speziell nach bash gefragt haben, aber ich dachte, ich würde mich einmischen, da ich diese Frage gefunden habe, als ich dasselbe mit sh in busybox unter uCLinux machen wollte. Dies ist über Bash hinaus portabel.