<Précédent | Table des matières | Suivant>
Motifs
Les modèles utilisés par maisons sont les mêmes que ceux utilisés par l'expansion du nom de chemin. Les motifs se terminent par un caractère ")". Voici quelques modèles valides :
Tableau 31- 1 : Exemples de modèles de cas
Description du motif
Description du motif
a) Correspond si mot est égal à « un ».
[[:alpha:]]) Correspond si mot est un seul caractère alphabétique.
???) Correspond si mot fait exactement trois caractères.
*.SMS) Correspond si mot se termine par les caractères « .txt ».
*) Correspond à n'importe quelle valeur de mot. Il est recommandé de l'inclure comme dernier motif dans un maisons commande, pour attraper toutes les valeurs de mot qui ne correspondait pas à un modèle précédent ; c'est-à-dire pour intercepter toutes les valeurs invalides possibles.
Voici un exemple de modèles au travail :
#! / Bin / bash
read -p "enter word > " case $REPLY in
[[:alpha:]]) echo "est un seul caractère alphabétique." ;; [ABC][0-9]) echo "est A, B ou C suivi d'un chiffre." ;;
???) echo "comporte trois caractères." ;;
*.txt) echo "est un mot se terminant par '.txt'" ;;
*) echo "est autre chose." ;; esac
#! / Bin / bash
read -p "enter word > " case $REPLY in
[[:alpha:]]) echo "est un seul caractère alphabétique." ;; [ABC][0-9]) echo "est A, B ou C suivi d'un chiffre." ;;
???) echo "comporte trois caractères." ;;
*.txt) echo "est un mot se terminant par '.txt'" ;;
*) echo "est autre chose." ;; esac
Il est également possible de combiner plusieurs motifs en utilisant le caractère barre verticale comme séparateur. Cela crée un modèle conditionnel « ou ». Ceci est utile pour des choses telles que la gestion des caractères majuscules et minuscules. Par exemple:
#! / Bin / bash
# case-menu : un programme d'information système piloté par menu clair
écho "
Veuillez sélectionner:
A. Afficher les informations système
B. Afficher l'espace disque
C. Afficher l'utilisation de l'espace domestique
Q. Quitter "
read -p "Entrer la sélection [A, B, C ou Q] > "
cas $REPLY dans
q|Q) echo "Programme terminé." sortir
;;
un|A) echo "Nom d'hôte : $HOSTNAME"
;;
b|B) df -h
;;
c|C) if [[ $(id -u) -eq 0 ]] ; alors
echo "Utilisation de l'espace d'accueil (tous les utilisateurs)" du -sh /home/*
d'autre
echo "Utilisation de l'espace domestique ($USER)" du -sh $HOME
fi
#! / Bin / bash
# case-menu : un programme d'information système piloté par menu clair
écho "
Veuillez sélectionner:
A. Afficher les informations système
B. Afficher l'espace disque
C. Afficher l'utilisation de l'espace domestique
Q. Quitter "
read -p "Entrer la sélection [A, B, C ou Q] > "
cas $REPLY dans
q|Q) echo "Programme terminé." sortir
;;
un|A) echo "Nom d'hôte : $HOSTNAME"
;;
b|B) df -h
;;
c|C) if [[ $(id -u) -eq 0 ]] ; alors
echo "Utilisation de l'espace d'accueil (tous les utilisateurs)" du -sh /home/*
d'autre
echo "Utilisation de l'espace domestique ($USER)" du -sh $HOME
fi
;;
*) echo "Entrée invalide" >&2 sortie 1
;;
Esac
;;
*) echo "Entrée invalide" >&2 sortie 1
;;
Esac
Ici, nous modifions le cas-menu programme pour utiliser des lettres au lieu de chiffres pour la sélection de menu. Remarquez comment les nouveaux modèles permettent la saisie de lettres majuscules et minuscules.