Syntaxe et exemples de la déclaration de cas bash

Syntaxe et exemples de la déclaration de cas bash

L'instruction de cas est une puissante déclaration conditionnelle dans Bash qui vous permet de tester une variable par rapport à une liste de valeurs. C'est une alternative plus concise et efficace à l'utilisation de plusieurs déclarations si. Plusieurs fois, c'est une bonne alternative aux déclarations if-else. Vous pouvez également l'utiliser pour traiter les arguments de ligne de commande dans un script shell.

Dans cet article, nous vous présenterons la déclaration de cas dans Bash et fournirons des exemples de la façon dont il peut être utilisé dans les scripts bash.

La syntaxe de l'énoncé de cas en bash

La syntaxe de l'énoncé de cas dans Bash est la suivante:

Expression de cas dans motif1) Commands1 ;; Pattern2) Commands2 ;; Pattern3) Commands3 ;; *) Default_Commands ;; ESAC
12345678910Expression de cas dans motif1) Commands1 ;; Pattern2) Commands2 ;; Pattern3) Commands3 ;; *) Default_Commands ;; ESAC

Le mot-clé de cas indique le début de l'instruction de cas, et le mot clé en sépare l'expression à tester de la liste des modèles. Chaque modèle est enfermé entre parenthèses et suivi d'une liste de commandes à exécuter si le modèle correspond à l'expression. Le double point-point (;;) indique la fin de chaque liste de commandes. Le *) Le modèle correspond à toute expression qui ne correspond à aucun des modèles précédents, et les commands default_commands sont exécutés dans ce cas.

Utilisation de la déclaration de cas dans Bash

L'instruction de cas dans Bash est particulièrement utile lorsque vous souhaitez comparer une variable avec une liste de valeurs possibles. Voici un exemple qui montre comment vous pouvez utiliser l'instruction de cas pour vérifier la valeur de la variable d'environnement $ $:

Case $ utilisateur en racine) écho "Vous êtes connecté comme racine.";; ubuntu) echo" Vous êtes connecté comme Ubuntu.";; *) Echo" Vous êtes connecté en tant qu'utilisateur inconnu.";; ESAC
12345678Case $ utilisateur en racine) écho "Vous êtes connecté comme racine.";; ubuntu) echo" Vous êtes connecté comme Ubuntu.";; *) Echo" Vous êtes connecté en tant qu'utilisateur inconnu.";; ESAC

Dans cet exemple, l'expression testée est la valeur du $ Utilisateur variable d'environnement. Les modèles sont les valeurs possibles de $ Utilisateur (root et ubuntu), et le modèle par défaut est le *) modèle, qui correspond à toute valeur qui n'est pas root ou ubuntu.

Déclaration de cas avec des arguments de ligne de commande

Vous pouvez également utiliser l'instruction de cas pour traiter les arguments de ligne de commande dans un script bash. Voici un exemple qui montre comment utiliser l'instruction de cas pour gérer différentes options de ligne de commande:

tandis que Getopts "A: B: C:" Opt; Do Case $ opt dans a) echo "L'option a a été adoptée avec l'argument $ optarg" ;; b) Echo "L'option B a été adoptée avec l'argument $ optarg" ;; c) Echo "L'option C a été adoptée avec l'argument $ optarg" ;; *) Echo "Option non valide: - $ optarg" ;; ESAC fait
123456789101112tandis que Getopts "A: B: C:" Opt; Do Case $ opt dans a) echo "L'option a a été adoptée avec l'argument $ optarg" ;; b) Echo "L'option B a été adoptée avec l'argument $ optarg" ;; c) Echo "L'option C a été adoptée avec l'argument $ optarg" ;; *) Echo "Option non valide: - $ optarg" ;; esacdone

Dans cet exemple, le getopts La commande est utilisée pour traiter les options de ligne de commande. L'instruction de cas est utilisée pour gérer chaque option (A, B et C) et son argument correspondant. Le modèle par défaut (*) est utilisé pour gérer toutes les options non valides.

Déclaration de cas avec expression régulière

Les expressions régulières utilisées dans l'énoncé de cas sont enfermées entre crochets ([]). C'est parce que nous utilisons des classes de caractères pour correspondre à différents types de caractères. Le + Signe après que le deuxième modèle est utilisé pour faire correspondre une ou plusieurs occurrences du modèle précédent (dans ce cas, des lettres minuscules). Les expressions régulières peuvent être assez complexes, et il existe de nombreuses autres fonctionnalités et options que vous pouvez utiliser dans Bash pour correspondre aux modèles.

Voici un exemple de la façon dont vous pouvez utiliser des expressions régulières avec la déclaration de cas dans Bash:

#!/ bin / bash read -p "Entrez une chaîne:" Str Case $ str dans [A-Z] [0-9]) Echo "La chaîne commence par une lettre en minuscules et se termine par un numéro.";; [A-Z] [A-Z] +) Echo" La chaîne commence par une lettre majuscule et est suivie de lettres minuscules.";; [0-9] +) Echo" La chaîne ne contient que des nombres.";; *) Echo" La chaîne ne correspond à aucun des modèles.";; ESAC
123456789101112131415161718#!/ bin / bash read -p "Entrez une chaîne:" Str Case $ str dans [A-Z] [0-9]) Echo "La chaîne commence par une lettre en minuscules et se termine par un numéro.";; [A-Z] [A-Z] +) Echo" La chaîne commence par une lettre majuscule et est suivie de lettres minuscules.";; [0-9] +) Echo" La chaîne ne contient que des nombres.";; *) Echo" La chaîne ne correspond à aucun des modèles.";; ESAC

Dans cet exemple, nous utilisons des expressions régulières pour correspondre à différents modèles de chaînes. Le premier motif correspond aux chaînes qui commencent par une lettre minuscule et se terminent par un nombre, comme A1, B2, etc. Le deuxième modèle correspond aux chaînes qui commencent par une lettre en majuscules et sont suivis d'une ou plusieurs lettres minuscules, telles que Hello, World, etc. Le troisième motif correspond aux chaînes qui ne contiennent que des nombres, tels que 123, 4567, etc. Le modèle par défaut correspond à toute chaîne qui ne correspond à aucun des modèles précédents.

Lorsque le script est exécuté, il invite l'utilisateur à entrer une chaîne. La chaîne est ensuite testée contre les différents modèles en utilisant l'instruction de cas. Si un motif correspond, le message correspondant s'affiche. Si aucun des modèles ne correspond, le message par défaut s'affiche.

Conclusion

La déclaration de cas dans Bash est une alternative puissante et efficace à l'utilisation de plusieurs déclarations si. Il vous permet de tester une variable par rapport à une liste de valeurs possibles et d'exécuter différentes commandes en fonction du modèle de correspondance. L'instruction de cas est particulièrement utile lorsque vous souhaitez traiter les arguments de ligne de commande ou comparer une variable avec une liste de valeurs possibles. En utilisant l'instruction CASE, vous pouvez écrire plus concise et lisible