Sayısal bir değişkeni hem var=$var+1
hem de var=($var+1)
kullanarak artırmayı denedim ancak başarılı olamadım. Değişken bir sayı, ancak bash bunu bir dize olarak okuyor gibi görünüyor.
Ubuntu 13.10 üzerinde Bash sürüm 4.2.45(1)-release (x86_64-pc-linux-gnu).
Bash'te bir değişkeni artırmanın birden fazla yolu vardır, ancak denediğiniz şey doğru değildir.
Örneğin aritmetik açılım kullanabilirsiniz:
var=$((var+1))
((var=var+1))
((var+=1))
((var++))
Ya da let
kullanabilirsiniz:
let "var=var+1"
let "var+=1"
let "var++"
Ayrıca bkz: http://tldp.org/LDP/abs/html/dblparens.html.
var=$((var + 1))
Bash'te aritmetik $((...))
sözdizimini kullanır.
Bir de bu var:
var=`expr $var + 1`
Boşluklara dikkat edin ve ayrıca ` ' değildir.
Radu'nun cevapları ve yorumları kapsamlı ve çok yararlı olsa da, bunlar bash-spesifiktir. Özellikle bash hakkında sorduğunuzu biliyorum, ancak uCLinux altında busybox'ta sh kullanarak aynı şeyi yapmak istediğimde bu soruyu bulduğum için araya gireceğimi düşündüm. Bu bash'in ötesinde taşınabilir.