Les instructions de conditionnelles en langage BASH (Bourne Again SHell) sont aux nombres de deux :
- IF THEN ... ELSE
- CASE IN ... ESAC
IF THEN ... ELSE
L'instruction «IF» permet le teste d'une condition et de choisir d'effectuer des instructions plutôt que d'autre dans le cas ou celle-ci serait vrai. Voici donc les syntaxes :
if expression_vrai ; then instruction_exécuté_si_vrai fi |
ou
if expression_vrai1 ; then instruction_exécuté_si_vrai1 else instruction_exécuté_si_faux fi |
Vous y remarquerez donc après les syntaxes proposé que l'instruction «ELSE» n'est pas obligatoire. On peut également utiliser le mot «ELIF» plutôt que «ELSE IF» pour ajouter à la lisibilité :
if expression_vrai1 ; then instruction_exécuté_si_vrai1 elif expression_vrai2; then instruction_exécuté_si_vrai2 else instruction_exécuté_si_faux fi |
CASE IN ... ESAC
Lorsqu'on effectue une série de teste répétitive sur une même variable avec différentes valeurs de la manière suivante:
if valeur == 1 ; then instruction1_exécuté_si_vrai1 elif valeur == 2 ; then instruction_exécuté_si_vrai2 elif valeur == 3 ; then instruction_exécuté_si_vrai3 else instruction_exécuté_si_faux fi |
On devrait plutôt tenté d'utiliser l'instruction «CASE» laquelle permet une meilleure lisibilité en plus de simplifié la compréhension pour un programmeur externe à votre code. Ainsi, l'instruction CASE permet d'effectuer de nombreuses comparaisons sur un unique résultat. Voici donc sa syntaxe :
case résultat in valeur1) instruction1_exécuté_si_vrai1 ;; valeur2) instruction_exécuté_si_vrai2 ;; valeur3) instruction_exécuté_si_vrai3 ;; esac |