EXPR(1L) Manuel de l'utilisateur Linux EXPR(1L)
NOM
expr - Evaluer 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 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 lexi
cographique 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 argu
ments sont transformés en nombres et une erreur se
produit si c'est impossible.
: Effectue une recherche de sous-chaîne. Les
FSF 23 Decembre 1996 1
EXPR(1L) Manuel de l'utilisateur Linux EXPR(1L)
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 correspon
dance. 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 posi
tion 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_car
actè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.
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 terminer normalement.
--version
Afficher un numéro de version sur la sortie stan
dard, et terminer normalement.
EXEMPLES
Pour ajouter 1 à la variable shell a :
FSF 23 Decembre 1996 2
EXPR(1L) Manuel de l'utilisateur Linux EXPR(1L)
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.
FSF 23 Decembre 1996 3