EXPR
Section : Manuel de l'utilisateur Linux (
1)
Mise à jour de la version anglaise : 30 juillet 2003
Index
Menu principal
NOM
expr - Évaluer des expressions
SYNOPSIS
expr
expression...
expr
{--help,--version}
DESCRIPTION
Cette page de manuel décrit la version GNU de
expr.
expr
évalue une expression, et imprime le résultat sur la sortie standard.
Chaque élément minimal de l'expression doit être fourni comme argument
indépendant. Les opérandes peuvent être des nombres ou des chaînes de
caractères. Les chaînes n'ont pas besoin d'être encadrées pour expr,
mais il est généralement nécessaire de le faire pour les protéger du shell.
expr
transforme tout argument apparaissant en position d'opérande en un entier,
ou en une chaîne suivant le type d'opération à appliquer.
Les opérateurs sont (par ordre décroissant de priorité) :
- |
-
Renvoie son premier argument s'il n'est pas nul, et si sa valeur n'est pas
zéro, sinon il renvoie son second argument. Il s'agit de l'opération 'OU'
habituelle.
- &
-
Si aucun des deux arguments n'est nul, et si aucune valeur n'est 0, renvoie
son premier argument. Sinon il renvoie 0.
- < <= = == != >= >
-
Compare les arguments et renvoie 1 si la relation est vraie, 0 sinon.
(== est un synonyme de =.)
expr transforme les deux arguments en nombres. La comparaison est
numérique. Si la transformation en nombre échoue, une comparaison de type
lexicographique est choisie.
- + -
-
Effectuent une opération arithmétique. Les deux arguments sont transformés
en nombres et une erreur se produit si c'est impossible.
- * / %
-
Effectuent une opération arithmétique (le `%' est l'opération `modulo' comme
en C). Les deux arguments sont transformés en nombres et une erreur se produit
si c'est impossible.
- :
-
Effectue une recherche de sous-chaîne. Les arguments sont considérés comme
des chaînes. Le second est une expression rationnelle avec un `^' ajouté
implicitement au début. Le premier argument est comparé à ce motif.
Si la correspondance réussit, et si une partie de la chaîne est
encadrée par `\(' et `\)', cette partie sera renvoyée comme valeur
de l'expression :. Sinon l'opération renvoie un entier représentant
le nombre de caractères mis en correspondance. Si la comparaison échoue,
l'opérateur : renvoie une chaîne nulle si l'encadrement `\(' et `\)'
est utilisé, et renvoie 0 sinon. On ne peut utiliser qu'un seul encadrement
`\(' et `\)'.
- De plus, les mots-clés suivants sont valides :
-
- match chaîne exp_rationnelle
-
Une autre manière de faire une mise en correspondance. Le résultat est
le même que ``chaîne : exp_rationnelle''.
- substr chaîne pos lg
-
Renvoie la partie de chaîne commençant à la position pos et
de longueur maximale lg. Si pos ou lg est négatif, ou
non-numérique, substr renvoie une chaîne nulle.
- index chaîne classe_caractères
-
Renvoie la position de la première occurrence du premier caractère appartenant
à classe_caractères dans la chaîne. Si aucun caractère de la
classe_caractères n'est trouvé dans chaîne, 0 est renvoyé.
- length chaîne
-
Renvoie la longueur de la chaîne.
Les parenthèses servent à grouper les opérations comme d'habitude. Les mots-clés
ne peuvent pas être utilisés comme chaînes.
OPTIONS
Quand la version GNU de
expr
est invoquée avec un unique argument, les options suivantes sont reconnues :
- --help
-
Afficher un message d'aide sur la sortie standard, et se terminer normalement.
- --version
-
Afficher un numéro de version sur la sortie standard, et se terminer normalement.
EXEMPLES
Pour ajouter 1 à la variable shell
a :
-
a=`expr $a + 1`
On peut utiliser l'expression suivante pour imprimer la partie sans répertoire d'un nom
de fichier situé dans la variable
a
(La valeur de
a
n'a pas besoin de contenir de `/'):
-
expr $a : '.*/\(.*\)' '|' $a
Remarquez la protection des méta-caractères du shell.
expr
renvoie les codes de retour suivants :
0 si l'expression n'est ni nulle ni 0,
1 si l'expression est nulle ou 0,
2 si l'expression est invalide.
TRADUCTION
Christophe Blaess, 1997.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- EXEMPLES
-
- TRADUCTION
-
Dernière mise à jour : 19 novembre 2007