Modèle de correspondance dans la déclaration de cas bash

Modèle de correspondance dans la déclaration de cas bash

Dans la programmation bash, l'instruction CASE aide à simplifier les conditions complexes lorsqu'il existe plusieurs choix différents. Au lieu d'utiliser des déclarations imbriquées, nous pouvons utiliser l'instruction de cas à la place pour rendre le code bash plus lisible et maintenable.

La déclaration de cas bash partage les similitudes avec JavaScript et C Switch Statement. Cependant, la principale différence est, une fois qu'il correspond à un modèle, il ne recherche pas de correspondance supplémentaire.

Ce guide couvrira les bases de la déclaration de cas avec divers exemples.

Affirmation de cash

La structure fondamentale de l'énoncé de cas est la suivante.

cas dans
)
affirmations
;;
)
affirmations
;;
*)
affirmations
;;
ESAC

Voici une brève ventilation de la structure:

  • L'instruction CASE commencera par le mot clé «cas» et se terminera par le mot-clé «ESAC», similaire à la façon dont Si Conditionnel commence par «If» et se termine par «Fi».
  • Il peut y avoir plusieurs modèles séparés par «|». L'opérateur «)» marque la fin de la liste des modèles.
  • Les motifs peuvent contenir des caractères spéciaux.
  • Une fois un modèle correspondant, ses commandes associées seront exécutées. Ensemble, ça s'appelle une clause. Chaque clause doit se terminer par «;;». Il arrête toute tentative de correspondre à d'autres modèles.
  • La clause Wildcard (*) est une pratique courante pour définir le cas par défaut. Il correspondra toujours à la condition.
  • Si aucun modèle ne correspond, alors l'instruction de cas renvoie zéro. Sinon, il renverra la valeur de sortie des commandes exécutées.

Avoir une compréhension de la déclaration de bash if-else est bénéfique pour comprendre et maîtriser la déclaration de cas de bash.

Exemples de déclaration de cas bash

Instruction de cas en utilisant des valeurs numériques

Maintenant que nous connaissons les bases, il est temps de le vérifier en action. Jetez un œil au script suivant.

#!/ bac / bash
echo -n "Entrez la valeur:"
valeur de lecture
Case $ valeur dans
1)
Echo "un" ;;
2)
Echo "Two" ;;
3)
Echo "trois" ;;
4 | 5)
Echo "supérieur à trois" ;;
*)
écho "valeur inconnue" ;;
ESAC

Enregistrer le script. Marquez-le comme un exécutable.

$ chmod + x échantillon.shot

Maintenant, exécutez le script.

$ ./goûter.shot

Le script demandera à saisir une valeur. Si la valeur correspond à l'un des modèles, il exécutera la clause de correspondance. Si aucun match n'a été trouvé, il correspondra à la clause par défaut.

Déclaration de cas en utilisant des chaînes

Dans l'exemple suivant, nous utiliserons les chaînes pour correspondre aux valeurs.

#!/ bac / bash
echo -n "Entrez la planète:"
lire la planète
cas $ planète
Mercure | Vénus | Terre | Mars | Jupiter | Saturne | Uranus | Neptune)
Echo "$ Planet est une planète du système solaire"
;;
Pluton)
Echo "$ Planet est un nain-plan"
;;
"Planet Nine")
Echo "$ Planet pas encore découvert"
;;
*)
écho "pas du système solaire"
;;
ESAC

Le script s'exécutera comme le premier exemple. Il demandera un nom de planète, vérifiez si l'entrée correspond à une clause et exécutera la clause de correspondance.

Si vous avez examiné attentivement, vous remarquerez que «Planet Nine» est la seule valeur enveloppée dans les devis. C'est parce qu'il y a de l'espace dedans. En utilisant des citations, nous disons au shell de le traiter comme faisant partie d'un seul modèle.

Sensibilité à la casse dans la déclaration de cas

Notez que dans le dernier exemple, l'entrée est sensible à la casse. C'est le comportement de bash par défaut. Cependant, nous pouvons dire à Shell d'exécuter le script en mode insensible au cas.

Pour ce faire, ajoutez la ligne suivante au début du script.

$ shopt -s nocasematch

Le script devrait ressembler à ceci.


Maintenant, testez le script. Entrez la valeur avec un cas différent.

$ ./goûter.shot

Pensée finale

Ce guide couvre les bases des déclarations de cas bash. Il montre également comment les implémenter dans des scripts bash. Vous devriez être à l'aise d'utiliser l'instruction de cas. Les instructions de cas de bash sont souvent utilisées pour transmettre des paramètres aux scripts de coquille d'une ligne de commande. Par exemple, les instructions de cas d'initiés INIT Scripts pour démarrer, arrêter et redémarrer les services. Après avoir lu ce guide, vous pourrez implémenter une déclaration de cas bash dans vos scripts.

Happy Computing!