« Programmation Bash/Tests » : différence entre les versions
Contenu supprimé Contenu ajouté
Aucun résumé des modifications |
|||
Ligne 69 : | Ligne 69 : | ||
vrai si e1 ou e2 est vrai. -o ou le ou lgogique. |
vrai si e1 ou e2 est vrai. -o ou le ou lgogique. |
||
== Test <code>if</code> == |
|||
L'instruction <code>if</code> permet d'effectuer des opérations si une condition est réalisée. |
|||
<pre> |
|||
if condition |
|||
then instruction(s) |
|||
fi |
|||
</pre> |
|||
L'instruction <code>if</code> peut aussi inclure une instruction else permettant d'exécuter des instructions dans le cas ou la condition n'est pas réalisée. |
|||
<pre> |
|||
if condition |
|||
then instruction(s) |
|||
else instruction(s) |
|||
fi |
|||
</pre> |
|||
Il est bien sur possible d'immbriquer des <code>if</code> dans d'autres <code>if</code> et notamment des constructions telles que celle ci sont assez courantes : |
|||
<pre> |
|||
if condition1 |
|||
then instruction(s) |
|||
else |
|||
if condition2 |
|||
then instruction(s) |
|||
else |
|||
if condition3 |
|||
... |
|||
fi |
|||
fi |
|||
fi |
|||
</pre> |
|||
Pour permettre d'alléger ce type de code, ksh fournit un raccourci d'écriture : <code>elif</code>. Le code précédent pourrait être réécrit ainsi : |
|||
<pre> |
|||
if condition1 |
|||
then instruction(s) |
|||
elif condition2 |
|||
then instruction(s) |
|||
elif condition3 |
|||
... |
|||
fi |
|||
</pre> |
|||
== Test <code>case</code> == |
|||
L'instruction <code>case</code> permet de comparer une valeur avec une liste d'autres valeurs et d'exécuter un bloc d'instructions lorsque une des valeurs de la liste correpsond. |
|||
<pre> |
|||
case valeur_testee in |
|||
valeur1) instruction(s);; |
|||
valeur2) instruction(s);; |
|||
valeur3) instruction(s);; |
|||
... |
|||
esac |
|||
</pre> |
|||
Ce code est équivalent à : |
|||
<pre> |
|||
if [ valeur_teste = valeur1 ] |
|||
then instruction(s) |
|||
elif [ valeur_testee = valeur2 ] |
|||
then instruction(s) |
|||
elif [ valeur_testee = valeur3 ] |
|||
then instruction(s) |
|||
... |
|||
fi |
|||
</pre> |
|||
'''Texte gras''' |
|||
[[Catégorie:Programmation Bash (livre)]] |
[[Catégorie:Programmation Bash (livre)]] |
Version du 5 mars 2007 à 15:44
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,
[ -n c ]
vrai si c n'est pas la chaîne vide.
Tests sur les nombres
Pour les nombres :
[ n1 -eq n2 ]
vrai si n1 et n2 sont égaux,
[ n1 -ne n2 ]
vrai si n1 et n2 sont différents,
[ n1 -lt n2 ]
vrai si n1 est strictement inférieur à n2,
[ n1 -le n2 ]
vrai si n1 est inférieur ou égal à n2,
[ n1 -gt n2 ]
vrai si n1 est strictement supérieur à n2,
[ n1 -ge n2 ]
vrai si n1 est supérieur ou égal à n2.
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.
[ e1 -o e2 ]
vrai si e1 ou e2 est vrai. -o ou le ou lgogique.