Le case
bash est généralement utilisée pour simplifier les conditions complexes lorsque vous avez plusieurs choix différents. Utiliser le case
déclaration au lieu de if
imbriqué vous aideront à rendre vos scripts bash plus lisibles et plus faciles à maintenir.
Le case
de Bash La déclaration a un concept similaire avec le Javascript ou C switch
déclaration. La principale différence est que contrairement au C switch
déclaration, le Bash case
l'instruction ne continue pas à rechercher une correspondance de modèle une fois qu'elle en a trouvé une et a exécuté les instructions associées à ce modèle.
Dans ce tutoriel, nous couvrirons les bases du cas Bash case
instruction et vous montrer comment l'utiliser dans vos scripts shell.
case
Syntaxe de l'instruction #
Le case
de Bash déclaration prend la forme suivante :
case EXPRESSION in
PATTERN_1)
STATEMENTS
;;
PATTERN_2)
STATEMENTS
;;
PATTERN_N)
STATEMENTS
;;
*)
STATEMENTS
;;
esac
- Chaque
case
l'instruction commence par lecase
mot-clé, suivi de l'expression case et duin
mot-clé. L'instruction se termine par leesac
mot-clé. - Vous pouvez utiliser plusieurs modèles séparés par le
|
opérateur. Le)
l'opérateur termine une liste de motifs. - Un modèle peut contenir des caractères spéciaux.
- Un modèle et ses commandes associées sont appelés une clause.
- Chaque clause doit se terminer par
;;
. - Les commandes correspondant au premier motif qui correspond à l'expression sont exécutées.
- Il est courant d'utiliser le symbole astérisque générique (
*
) comme modèle final pour définir le cas par défaut. Ce modèle correspondra toujours. - Si aucun modèle ne correspond, le statut de retour est zéro. Sinon, l'état de retour est l'état de sortie des commandes exécutées.
Exemple de déclaration de cas #
Voici un exemple utilisant le case
déclaration dans un script bash qui imprimera la langue officielle d'un pays donné :
#!/bin/bash
echo -n "Enter the name of a country: "
read COUNTRY
echo -n "The official language of $COUNTRY is "
case $COUNTRY in
Lithuania)
echo -n "Lithuanian"
;;
Romania | Moldova)
echo -n "Romanian"
;;
Italy | "San Marino" | Switzerland | "Vatican City")
echo -n "Italian"
;;
*)
echo -n "unknown"
;;
esac
Enregistrez le script personnalisé en tant que fichier et exécutez-le à partir de la ligne de commande.
bash languages.sh
Le script vous demandera d'entrer un pays. Par exemple, si vous tapez "Lituanie", il correspondra au premier motif, et le echo
commande dans cette clause sera exécutée.
Le script imprimera la sortie suivante :
Enter the name of a country: Lithuania
The official language of Lithuania is Lithuanian
Si vous entrez un pays qui ne correspond à aucun autre modèle à l'exception du symbole astérisque générique par défaut, disons l'Argentine, le script exécutera le echo
commandà l'intérieur de la clause par défaut.
Enter the name of a country: Argentina
The official language of Argentina is unknown
Conclusion #
À présent, vous devriez avoir une bonne compréhension de la façon d'écrire bash case
déclarations. Ils sont souvent utilisés pour passer des paramètres à un script shell à partir de la ligne de commande. Par exemple, les scripts d'initialisation utilisent case
instructions pour démarrer, arrêter ou redémarrer des services.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.