Syntaxe :
expr expression
Les arguments de la commande « expr » sont considérés comme une expression.
La commande « expr » évalue ses arguments et écrit le résultat sur
la sortie standard. « expr », comme toutes les commandes UNIX,
doit avoir ses arguments séparés par des espaces.
La première utilisation de « expr » concerne les opérations arithmétiques
simples. Les opérateurs +
, -
, *
et /
correspondent
respectivement à l'addition, à la soustraction, à la multiplication et
à la division.
La seconde utilisation de la commande « expr » concerne la comparaison et
la gestion des chaînes de caractères grâce à l'opérateur « :
».
Celui-ci permet de compter combien de fois apparaît, dans l'expression placée
en premier membre, l'expression régulière spécifiée en second membre.
Pour plus de renseignements, reportez vous au chapitre .
Il est possible d'effectuer des regroupements grâce à des parenthèses, comme dans toute opération arithmétique.
Attention :
Ne pas oublier que le processus d'évaluation du shell effectue ses opérations avant de passer le contrôle à la commande « expr ». Par conséquent, les caractères «*
», «(
» et «)
» risquent d'être évalués par le shell et non pas passé en argument à la commande « expr ». Il faudra donc les faire précéder du caractère «\
» (cf. sectionset
).
Exemple 9..2 :
Exemples valides :
% X=3; Y=5 % Z=`expr $X + 4 ` % echo $Z 7 % Z=`expr \( $Z + $X \) \* $Y` % echo $Z 50 % X=abcdef % Z=`expr $X : '.*' ` % echo $Z 6 % Z=`expr \( $X : '.*' \) + $Y` % echo $Z 11
Exemples non valides :
Z=`expr $X+4`
Z=`expr $X * $Y`
Z=`expr 3 fic1 fic2 fic3 fic4 fic5 fic6 4`
Z=`expr ( $X \* $Y ) + $Z`