Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

Expansion arithmétique

Le shell permet d'effectuer l'arithmétique par expansion. Cela nous permet d'utiliser l'invite du shell comme une calculatrice :



[moi@linuxbox ~]$ écho $((2 + 2))

4

[moi@linuxbox ~]$ écho $((2 + 2))

4


Le développement arithmétique utilise la forme :

$((expression))

De expression est une expression arithmétique composée de valeurs et d'opérateurs arithmétiques.

Le développement arithmétique ne prend en charge que les entiers (nombres entiers, pas de décimales), mais peut effectuer un certain nombre d'opérations différentes. Voici quelques-uns des opérateurs pris en charge :


Tableau 7-1 : Opérateurs arithmétiques

Operaàr Description

+ Addition


image

- Soustraction


image

* Multiplier


image

/ Division (mais rappelez-vous, puisque l'expansion ne prend en charge que l'arithmétique des nombres entiers, les résultats sont des nombres entiers).


image

% Modulo, qui signifie simplement « reste ».


image

** Exponentiation


image


Les espaces ne sont pas significatifs dans les expressions arithmétiques et les expressions peuvent être imbriquées. Par exemple, pour multiplier 5 au carré par 3 :



[moi@linuxbox ~]$ écho $(($((5**2)) * 3))

75

[moi@linuxbox ~]$ écho $(($((5**2)) * 3))

75


Des parenthèses simples peuvent être utilisées pour regrouper plusieurs sous-expressions. Avec cette technique, nous pouvons réécrire l'exemple ci-dessus et obtenir le même résultat en utilisant un seul développement au lieu de deux :



[moi@linuxbox ~]$ écho $(((5**2) * 3))

75

[moi@linuxbox ~]$ écho $(((5**2) * 3))

75


Voici un exemple utilisant les opérateurs de division et de reste. Remarquez l'effet de la division entière :



[moi@linuxbox ~]$ echo Cinq divisé par deux égale $((5/2))

Cinq divisé par deux égale 2

[moi@linuxbox ~]$ echo avec $((5%2)) restant.

avec 1 restant.

[moi@linuxbox ~]$ echo Cinq divisé par deux égale $((5/2))

Cinq divisé par deux égale 2

[moi@linuxbox ~]$ echo avec $((5%2)) restant.

avec 1 restant.


Le développement arithmétique est traité plus en détail au chapitre 34.


Meilleur système d'exploitation Cloud Computing chez OnWorks :