Substitution d’expressions arithmétiques Substitution:d’expressions arithmétiques
bourne |
posix |
ksh |
bash |
Les caractères de substitution de commandes ont été présentés dans la section Substitution de commandes de ce chapitre. Les caractères spéciaux du shell $(( )) permettent de substituer une expression arithmétique par son résultat. Ces caractères peuvent être placés entre guillemets.
Syntaxe
posix |
ksh |
bash |
commande argument1 $((expression-arithmétique)) ... argumentn
Exemple
$ x=2
Afficher la valeur de x+1, sans modifier la valeur de la variable (qui vaut toujours 2):
$ echo $((x+1))
3
Affectations :
$ i=1
$ i=$(( $i * 100 )) # ou i=$(( i * 100 ))
$ echo $i
100
Equivalent à :
$ i=`expr $i \* 100` ou i=$(expr $i \* 100)
Modifier et afficher la variable x :
$ echo "x vaut : $((x=x+1))"
x vaut : 3
$ echo $x
3
Il ne faut pas confondre avec la commande (( )) qui n’affiche rien :
$ x=2
$ ((x=x+1)) modification de la variable x
$ echo $x
3
Ne pas confondre (( )) et $(( )). (( )) est une commande interne au shell et $(( )) sont des caractères spéciaux du shell au même titre que `` ou $().