Gladir.com - BASH (Bourne Again SHell) - Conditionnel


Les instructions de conditionnel en langage BASH (Bourne Again SHell) sont au 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

Dernière mise à jour: Vendredi, le 3 février 2006