| | |
expr - Evaluer des expressions.
expr expression...
expr {--help,--version}
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 précédence):
- |
- 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 régulière 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_reg
- Une autre
manière de faire une mise en correspondance. Le résultat est le même que
``chaîne : exp_reg''.
- 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ère
- Renvoie la position de la première occurence du premier caractère appartenant
à classe_caractère dans la chaîne. Si aucun caractère de classe_caractère
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.
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 terminer normalement.
- --version
- Afficher un numéro de version sur la sortie
standard, et terminer normalement.
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.
Christophe Blaess, 1997.
Table des matières
© 1996-2000 Adaptation française "Christophe Blaess"
| |