<Précédent | Table des matières | Suivant>
Motifs
Les modèles utilisés par maisons sont identiques à ceux utilisés pour l'expansion des chemins d'accès. Les motifs se terminent par un caractère « ) ». Voici quelques motifs valides :
Tableau 31- 1 : Exemples de modèles de cas
Description du modèle
Description du modèle
a) Correspond à si mot est égal à « a ».
![]()
[[:alpha:]]) Correspond à si mot est un seul caractère alphabétique.
![]()
???) Correspond à si mot comporte exactement trois caractères.
![]()
*.SMS) Correspond à si mot se termine par les caractères « .txt ».
![]()
*) Correspond à n'importe quelle valeur de motIl est recommandé d'inclure ceci comme dernier modèle dans un maisons commande, pour récupérer toutes les valeurs de mot qui ne correspondait pas à un modèle précédent ; c'est-à-dire pour détecter d'éventuelles valeurs invalides.
![]()
Voici un exemple de modèles à l’œuvre :
#! / Bin / bash
lire -p "entrer le mot > " cas $REPLY dans
[[:alpha:]]) echo "est un seul caractère alphabétique." ;; [ABC][0-9]) echo "est A, B ou C suivi d'un chiffre." ;;
???) echo "est long de trois caractères." ;;
*.txt) echo "est un mot se terminant par '.txt'" ;;
*) echo "est autre chose." ;; esac
#! / Bin / bash
lire -p "entrer le mot > " cas $REPLY dans
[[:alpha:]]) echo "est un seul caractère alphabétique." ;; [ABC][0-9]) echo "est A, B ou C suivi d'un chiffre." ;;
???) echo "est long de 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 la barre verticale comme séparateur. Cela crée un motif conditionnel « ou ». Ceci est utile pour gérer les majuscules et les 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 du système
B. Afficher l'espace disque
C. Afficher l'utilisation de l'espace domestique
Q. Quitter "
lire -p "Entrer la sélection [A, B, C ou Q] > "
cas $REPLY dans
q|Q) echo "Programme terminé." sortir
;;
a|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 du système
B. Afficher l'espace disque
C. Afficher l'utilisation de l'espace domestique
Q. Quitter "
lire -p "Entrer la sélection [A, B, C ou Q] > "
cas $REPLY dans
q|Q) echo "Programme terminé." sortir
;;
a|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 menu de cas Programme permettant d'utiliser des lettres plutôt que des chiffres pour la sélection dans les menus. Remarquez que les nouveaux modèles permettent la saisie de lettres majuscules et minuscules.
Documentation