Différences entre les versions de « Programmation Bash/Tests »

+ coloration
(+ coloration)
== Conditions ==
Deux syntaxes équivalentes permettent de tester des expressions : <code>[ expression ]</code> et <code>test expression</code>. Elles renvoient toutes les deux un code de retour valant 0 si l'expression est vraie et 1 si l'expression est fausse.
<source lang="bash">
<pre>
$ [ 2 = 2 ]
$ echo $?
$ echo $?
1
</source>
 
 
 
 
</pre>
La commande <code>test</code> fonctionne de manière complétement équivalente :
<source lang="bash">
<pre>
$ test 2 = 2
$ echo $?
$ echo $?
1
</presource>
Les opérateurs de tests disponibles sont, pour les chaînes :
* <code>c1 = c2</code>, vrai si c1 et c2 sont égaux ;
== Test <code>if</code> ==
L'instruction <code>if</code> permet d'effectuer des opérations si une condition est réalisée.
<source lang="bash">
<pre>
if condition
then instruction(s)
fi
</presource>
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.
<source lang="bash">
<pre>
if condition
then instruction(s)
else instruction(s)
fi
</presource>
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 :
<source lang="bash">
<pre>
if condition1
then instruction(s)
fi
fi
</presource>
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 :
<source lang="bash">
<pre>
if condition1
then instruction(s)
...
fi
</presource>
 
== 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.
<source lang="bash">
<pre>
case valeur_testee in
valeur1) instruction(s);;
...
esac
</presource>
Ce code est équivalent à :
<source lang="bash">
<pre>
if [ valeur_teste = valeur1 ]
then instruction(s)
...
fi
</presource>
 
[[Catégorie:Programmation bash-ksh (livre)]]