Substitution d'expressions arithmétiques

Il existe les caractères de substitution de commandes mais il existe également les caractères de substitution d'expressions arithmétiques.

Syntaxe :

commande argument1 $((expression_arithmetique)) ... argumentn

Exemple :

Rappel sur la substitution de commandes

$ echo "Nombre de users connectes : `who | wc -l`"
Nombre de users connectes : 1
ou
$ echo "Nombre de users connectes : $(who | wc -l)"
Nombre de users connectes : 1

Substitution d'expressions arithmétiques

$ cpt=1
$ ((cpt+=1))                               # Le résultat de la commande n'est pas affichée
$ echo $cpt
2
$

$ cpt=1
$ echo "Nouveau compteur : `((cpt+=1))`"
Nouveau compteur :                  # Le résultat de la commande n'est pas affichée et le compteur n'est pas incrémenté
$ echo $cpt
1
$

$ cpt=1
$ echo "Nouveau compteur : $((cpt+=1))"
Nouveau compteur : 2                # Le résultat de la commande est affiché et le compteur est incrémenté
$ echo $cpt
2
$

Il ne faut pas confondre (( )) et $(( )).
(( )) est une commande interne au shell.
$(( )) sont des caractères spéciaux du shell à l'égal de `` ou $().