J'ai essayé d'incrémenter une variable numérique en utilisant à la fois var=$var+1
et var=($var+1)
sans succès. La variable est un nombre, bien que bash semble la lire comme une chaîne de caractères.
Bash version 4.2.45(1)-release (x86_64-pc-linux-gnu) sur Ubuntu 13.10.
Il y a plus d'une façon d'incrémenter une variable en bash, mais ce que vous avez essayé n'est pas correct.
Vous pouvez utiliser par exemple l'expansion arithmétique :
var=$((var+1))
((var=var+1))
((var+=1))
((var++))
Ou vous pouvez utiliser let
:
let "var=var+1"
let "var+=1"
let "var++"
Voir aussi : http://tldp.org/LDP/abs/html/dblparens.html.
var=$((var + 1))
L'arithmétique dans bash utilise la syntaxe $((...))
.
Il y a aussi ça :
var=`expr $var + 1`
Notez bien les espaces et aussi que ` n'est pas '.
Bien que les réponses de Radu et les commentaires soient exhaustifs et très utiles, ils sont spécifiques à bash. Je sais que vous avez posé une question spécifique à propos de bash, mais j'ai pensé que je pourrais intervenir puisque j'ai trouvé cette question lorsque j'ai cherché à faire la même chose en utilisant sh dans busybox sous uCLinux. Ce portable va au-delà de bash.