<Precedenti | Contenuti | Succ.>
Modelli
I modelli utilizzati da Custodie sono gli stessi utilizzati dall'espansione del percorso. I pattern terminano con il carattere ")". Ecco alcuni pattern validi:
Tabella 31-1: Esempi di modelli di casi
Descrizione del modello
Descrizione del modello
a) Corrisponde se parola è uguale a "a".
[[:alfa:]]) Corrisponde se parola è un singolo carattere alfabetico.
???) Corrisponde se parola è lungo esattamente tre caratteri.
*.TXT) Corrisponde se parola termina con i caratteri “.txt”.
*) Corrisponde a qualsiasi valore di parolaÈ buona norma includere questo come ultimo modello in un Custodie comando, per catturare qualsiasi valore di parola che non corrispondeva a un modello precedente, ovvero per catturare eventuali valori non validi.
Ecco un esempio di modelli in funzione:
#! / Bin / bash
leggi -p "inserisci parola > " caso $REPLY in
[[:alpha:]]) echo "è un singolo carattere alfabetico." ;; [ABC][0-9]) echo "è A, B o C seguito da una cifra." ;;
???) echo "è lungo tre caratteri." ;;
*.txt) echo "è una parola che termina in '.txt'" ;;
*) echo "è qualcos'altro." ;; esac
#! / Bin / bash
leggi -p "inserisci parola > " caso $REPLY in
[[:alpha:]]) echo "è un singolo carattere alfabetico." ;; [ABC][0-9]) echo "è A, B o C seguito da una cifra." ;;
???) echo "è lungo tre caratteri." ;;
*.txt) echo "è una parola che termina in '.txt'" ;;
*) echo "è qualcos'altro." ;; esac
È anche possibile combinare più pattern utilizzando il carattere barra verticale come separatore. Questo crea un pattern condizionale "o". Questo è utile per gestire sia caratteri maiuscoli che minuscoli. Ad esempio:
#! / Bin / bash
# case-menu: un programma di informazioni di sistema guidato da menu
eco "
Seleziona:
A. Visualizza le informazioni di sistema
B. Visualizza spazio su disco
C. Visualizza l'utilizzo dello spazio domestico
Q. Esentato "
leggi -p "Inserisci selezione [A, B, C o Q] > "
caso $REPLY in
q|Q) echo "Programma terminato." exit
;;
un|A) echo "Nome host: $HOSTNAME" tempo di attività
;;
b|B) df -h
;;
c|C) se [[ $(id -u) -eq 0 ]]; allora
echo "Utilizzo dello spazio domestico (tutti gli utenti)" du -sh /home/*
altro
echo "Utilizzo dello spazio domestico ($USER)" du -sh $HOME
fi
#! / Bin / bash
# case-menu: un programma di informazioni di sistema guidato da menu
eco "
Seleziona:
A. Visualizza le informazioni di sistema
B. Visualizza spazio su disco
C. Visualizza l'utilizzo dello spazio domestico
Q. Esentato "
leggi -p "Inserisci selezione [A, B, C o Q] > "
caso $REPLY in
q|Q) echo "Programma terminato." exit
;;
un|A) echo "Nome host: $HOSTNAME" tempo di attività
;;
b|B) df -h
;;
c|C) se [[ $(id -u) -eq 0 ]]; allora
echo "Utilizzo dello spazio domestico (tutti gli utenti)" du -sh /home/*
altro
echo "Utilizzo dello spazio domestico ($USER)" du -sh $HOME
fi
;;
*) echo "Voce non valida" >&2 exit 1
;;
che C
;;
*) echo "Voce non valida" >&2 exit 1
;;
che C
Qui modifichiamo il menu dei casi programma per utilizzare lettere anziché cifre per la selezione del menu. Nota come i nuovi modelli consentano l'inserimento sia di lettere maiuscole che minuscole.