« Programmation Bash/Tests » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Shadopok (discussion | contributions)
Aucun résumé des modifications
Signification
Ligne 40 : Ligne 40 :
vrai si c1 et c2 sont différents,
vrai si c1 et c2 sont différents,
* <code>[ -z c ]</code>
* <code>[ -z c ]</code>
vrai si c est la chaîne vide,
vrai si c est la chaîne vide (''Zero''),
* <code>[ -n c ]</code>
* <code>[ -n c ]</code>
vrai si c n'est pas la chaîne vide.
vrai si c n'est pas la chaîne vide (''Non zero'').


== Tests sur les nombres ==
== Tests sur les nombres ==
Ligne 48 : Ligne 48 :
Pour les nombres :
Pour les nombres :
* <code>[ n1 -eq n2 ]</code>
* <code>[ n1 -eq n2 ]</code>
vrai si n1 et n2 sont égaux,
vrai si n1 et n2 sont égaux (''EQual''),
* <code>[ n1 -ne n2 ]</code>
* <code>[ n1 -ne n2 ]</code>
vrai si n1 et n2 sont différents,
vrai si n1 et n2 sont différents (''Not Equal''),
* <code>[ n1 -lt n2 ]</code>
* <code>[ n1 -lt n2 ]</code>
vrai si n1 est strictement inférieur à n2,
vrai si n1 est strictement inférieur à n2 (''Less Than''),
* <code>[ n1 -le n2 ]</code>
* <code>[ n1 -le n2 ]</code>
vrai si n1 est inférieur ou égal à n2,
vrai si n1 est inférieur ou égal à n2 (''Less or Equal''),
* <code>[ n1 -gt n2 ]</code>
* <code>[ n1 -gt n2 ]</code>
vrai si n1 est strictement supérieur à n2,
vrai si n1 est strictement supérieur à n2 (''Greater Than''),
* <code>[ n1 -ge n2 ]</code>
* <code>[ n1 -ge n2 ]</code>
vrai si n1 est supérieur ou égal à n2.
vrai si n1 est supérieur ou égal à n2 (''Greater or Equal'').


== Tests et logique ==
== Tests et logique ==
Ligne 65 : Ligne 65 :
vrai si e est faux. ! est la négation.
vrai si e est faux. ! est la négation.
* <code>[ e1 -a e2 ]</code>
* <code>[ e1 -a e2 ]</code>
vrai si e1 et e2 sont vrais. -a ou le et logique.
vrai si e1 et e2 sont vrais. -a ou le et logique (''And'').
* <code>[ e1 -o e2 ]</code>
* <code>[ e1 -o e2 ]</code>
vrai si e1 ou e2 est vrai. -o ou le ou lgogique.
vrai si e1 ou e2 est vrai. -o ou le ou lgogique (''Or'').






Version du 5 mars 2007 à 15:19

Syntaxe du test

Deux syntaxes équivalentes permettent de tester des expressions :

[ expression ]

ou

test expression


Ces deux commandes renvoient un code de retour valant 0 si l'expression est vraie et 1 si l'expression est fausse. Exemple :

$ [ 2 = 2 ]
$ echo $?
0
$ [ 2 = 3 ]
$ echo $?
1

La commande test fonctionne de manière complétement équivalente :

$ test 2 = 2
$ echo $?
0
$ test 2 = 3
$ echo $?
1

Tests sur les chaînes de caractères

Les opérateurs de tests disponibles sont, pour les chaînes :

  • [ c1 = c2 ]
vrai si c1 et c2 sont égaux,
  • [ c1 != c2 ]
vrai si c1 et c2 sont différents,
  • [ -z c ]
vrai si c est la chaîne vide (Zero),
  • [ -n c ]
vrai si c n'est pas la chaîne vide (Non zero).

Tests sur les nombres

Pour les nombres :

  • [ n1 -eq n2 ]
vrai si n1 et n2 sont égaux (EQual),
  • [ n1 -ne n2 ]
vrai si n1 et n2 sont différents (Not Equal),
  • [ n1 -lt n2 ]
vrai si n1 est strictement inférieur à n2 (Less Than),
  • [ n1 -le n2 ]
vrai si n1 est inférieur ou égal à n2 (Less or Equal),
  • [ n1 -gt n2 ]
vrai si n1 est strictement supérieur à n2 (Greater Than),
  • [ n1 -ge n2 ]
vrai si n1 est supérieur ou égal à n2 (Greater or Equal).

Tests et logique

Ou comment introduire une alternative logique :

  • [ ! e ]
vrai si e est faux. ! est la négation.
  • [ e1 -a e2 ]
vrai si e1 et e2 sont vrais. -a ou le et logique (And).
  • [ e1 -o e2 ]
vrai si e1 ou e2 est vrai. -o ou le ou lgogique (Or).