Unix / Linux - Exemple d'opérateurs arithmétiques Shell

Les opérateurs arithmétiques suivants sont pris en charge par Bourne Shell.

Supposons une variable a détient 10 et variable b détient 20 alors -

Opérateur La description Exemple
+ (Ajout) Ajoute des valeurs de chaque côté de l'opérateur `expr $ a + $ b` donnera 30
- (Soustraction) Soustrait l'opérande de droite de l'opérande de gauche `expr $ a - $ b` donnera -10
* (Multiplication) Multiplie les valeurs de chaque côté de l'opérateur `expr $ a \ * $ b` donnera 200
/ (Division) Divise l'opérande de gauche par l'opérande de droite `expr $ b / $ a` donnera 2
% (Module) Divise l'opérande de gauche par l'opérande de droite et renvoie le reste `expr $ b% $ a` donnera 0
= (Affectation) Assigne l'opérande droit dans l'opérande gauche a = $ b attribuerait la valeur de b dans a
== (Égalité) Compare deux nombres, si les deux sont identiques, alors renvoie vrai. [$ a == $ b] renverrait false.
! = (Pas l'égalité) Compare deux nombres, si les deux sont différents, renvoie vrai. [$ a! = $ b] renverrait vrai.

Il est très important de comprendre que toutes les expressions conditionnelles doivent être à l'intérieur d'accolades avec des espaces autour d'elles, par exemple [ $a == $b ] est correct alors que, [$a==$b] est incorrect.

Tous les calculs arithmétiques sont effectués en utilisant des entiers longs.

Exemple

Voici un exemple qui utilise tous les opérateurs arithmétiques -

#!/bin/sh

a=10
b=20

val=`expr $a + $b`
echo "a + b : $val"

val=`expr $a - $b`
echo "a - b : $val"

val=`expr $a \* $b`
echo "a * b : $val"

val=`expr $b / $a`
echo "b / a : $val"

val=`expr $b % $a`
echo "b % a : $val"

if [ $a == $b ]
then
   echo "a is equal to b"
fi

if [ $a != $b ]
then
   echo "a is not equal to b"
fi

Le script ci-dessus produira le résultat suivant -

a + b : 30
a - b : -10
a * b : 200
b / a : 2
b % a : 0
a is not equal to b

Les points suivants doivent être pris en compte lors de l'utilisation des opérateurs arithmétiques -

  • Il doit y avoir des espaces entre les opérateurs et les expressions. Par exemple, 2 + 2 n'est pas correct; il doit être écrit 2 + 2.

  • L'expression complète doit être placée entre ‘ ‘, appelé les virgules inversées.

  • Tu devrais utiliser \ sur le * symbole de multiplication.

  • if...then...fi déclaration est une déclaration de prise de décision qui a été expliquée dans le chapitre suivant.

unix-basic-operators.htm