Dans cette rubrique, nous aborderons les bases des instructions case et comment les utiliser dans les scripts Bash.
L'instruction de cas Bash est la forme la plus simple de IF-THEN-ELSE avec de nombreux éléments ELIF. L'utilisation de l'instruction case rend notre script bash plus lisible et plus facile à maintenir. Celles-ci sont généralement appliquées pour simplifier les conditions complexes comportant plusieurs choix différents.
L'instruction Bash case suit une logique similaire à celle de l'instruction Javascript ou C switch. Il y a une légère différence, comme suit :
- L'instruction Bash case prend une valeur une fois et teste cette valeur plusieurs fois. Il arrête de rechercher un modèle une fois qu'il l'a trouvé et exécuté l'instruction qui lui est liée, ce qui est presque opposé dans le cas de l'instruction C switch.
Syntaxe des instructions de cas
La syntaxe de l'instruction bash case est donnée ci-dessous :
case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac
Il y a quelques points clés dans les instructions bash case :
- Chaque instruction case dans bash commence par le mot-clé 'case', suivi de l'expression case et du mot-clé 'in'. L'instruction case est fermée par le mot-clé 'esac'.
- Nous pouvons appliquer plusieurs modèles séparés par | opérateur. L'opérateur ) indique la fin d'une liste de modèles.
- Un modèle contenant les instructions est appelé clause et doit être terminé par un double point-virgule (;;).
- Un astérisque (*) est utilisé comme modèle final pour définir la casse par défaut. Il est utilisé comme cas par défaut lorsqu'il est utilisé comme dernier cas.
Comment ça fonctionne
Tout d'abord, l'instruction case développe l'expression et tente de correspondre à chacun des modèles inclus. Lorsqu'il trouve une correspondance, toutes les instructions liées sont exécutées jusqu'au double point-virgule (;;). Après la première correspondance, le cas se termine avec l'état de sortie de la dernière instruction exécutée.
S’il n’y a aucun modèle correspondant, l’état de sortie du cas est zéro. Sinon, le statut de retour est le statut de sortie des instructions exécutées.
Si le modèle d'astérisque par défaut est utilisé, il sera exécuté en cas d'absence de modèle correspondant.
Essayons de comprendre ce mécanisme à l'aide de quelques exemples :
Exemple 1
Dans cet exemple, nous avons défini un scénario simple pour démontrer l'utilisation de l'instruction case.
Script bash
#!/bin/bash echo 'Do you know Java Programming?' read -p 'Yes/No? :' Answer case $Answer in Yes|yes|y|Y) echo 'That's amazing.' echo ;; No|no|N|n) echo 'It's easy. Let's start learning from javatpoint.' ;; esac
Sortir
Exemple 2
Dans cet exemple, nous avons défini un scénario combiné dans lequel il existe également un cas par défaut lorsqu'aucun cas correspondant précédent n'est trouvé.
vérifier la valeur null en java
Script bash
#!/bin/bash echo 'Which Operating System are you using?' echo 'Windows, Android, Chrome, Linux, Others?' read -p 'Type your OS Name:' OS case $OS in Windows|windows) echo 'That's common. You should try something new.' echo ;; Android|android) echo 'This is my favorite. It has lots of applications.' echo ;; Chrome|chrome) echo 'Cool!!! It's for pro users. Amazing Choice.' echo ;; Linux|linux) echo 'You might be serious about security!!' echo ;; *) echo 'Sounds interesting. I will try that.' echo ;; esac
Sortir
Nous avons exécuté le script avec trois entrées différentes, consultez le résultat ci-dessous :