Il case
bash istruzione viene generalmente utilizzata per semplificare condizionali complessi quando si hanno più scelte diverse. Usando il case
istruzione invece di if
annidato le istruzioni ti aiuteranno a rendere i tuoi script bash più leggibili e facili da mantenere.
Il case
di Bash L'istruzione ha un concetto simile con Javascript o C switch
dichiarazione. La differenza principale è che, a differenza del C switch
dichiarazione, il case
di Bash istruzione non continua a cercare una corrispondenza di pattern una volta che ne ha trovata una ed ha eseguito le istruzioni associate a quel pattern.
In questo tutorial, tratteremo le basi del case
Bash istruzione e mostrarti come usarlo nei tuoi script di shell.
case
Sintassi dell'istruzione #
Il case
di Bash dichiarazione assume la forma seguente:
case EXPRESSION in
PATTERN_1)
STATEMENTS
;;
PATTERN_2)
STATEMENTS
;;
PATTERN_N)
STATEMENTS
;;
*)
STATEMENTS
;;
esac
- Ogni
case
l'istruzione inizia con ilcase
parola chiave, seguita dall'espressione case e dain
parola chiave. L'istruzione termina conesac
parola chiave. - Puoi usare più pattern separati da
|
operatore. Il)
l'operatore termina un elenco di modelli. - Un pattern può avere caratteri speciali.
- Un pattern e i suoi comandi associati sono conosciuti come una clausola.
- Ogni clausola deve essere terminata con
;;
. - I comandi corrispondenti al primo pattern che corrisponde all'espressione vengono eseguiti.
- È pratica comune utilizzare il simbolo dell'asterisco jolly (
*
) come modello finale per definire il caso predefinito. Questo modello corrisponderà sempre. - Se nessun modello corrisponde, lo stato di ritorno è zero. In caso contrario, lo stato di ritorno è lo stato di uscita dei comandi eseguiti.
Esempio di istruzione del caso #
Ecco un esempio usando il case
dichiarazione in uno script bash che stamperà la lingua ufficiale di un determinato paese:
#!/bin/bash
echo -n "Enter the name of a country: "
read COUNTRY
echo -n "The official language of $COUNTRY is "
case $COUNTRY in
Lithuania)
echo -n "Lithuanian"
;;
Romania | Moldova)
echo -n "Romanian"
;;
Italy | "San Marino" | Switzerland | "Vatican City")
echo -n "Italian"
;;
*)
echo -n "unknown"
;;
esac
Salva lo script personalizzato come file ed eseguilo dalla riga di comando.
bash languages.sh
Lo script ti chiederà di inserire un paese. Ad esempio, se digiti "Lituania", corrisponderà al primo modello e a echo
il comando in quella clausola verrà eseguito.
Lo script stamperà il seguente output:
Enter the name of a country: Lithuania
The official language of Lithuania is Lithuanian
Se inserisci un paese che non corrisponde a nessun altro modello tranne il simbolo di asterisco jolly predefinito, supponiamo che lo script eseguirà l'echo
Argentina comando all'interno della clausola predefinita.
Enter the name of a country: Argentina
The official language of Argentina is unknown
Conclusione #
A questo punto dovresti avere una buona comprensione di come scrivere bash case
dichiarazioni. Sono spesso usati per passare parametri a uno script di shell dalla riga di comando. Ad esempio, gli script init utilizzano case
istruzioni per l'avvio, l'arresto o il riavvio dei servizi.
Se hai domande o feedback, sentiti libero di lasciare un commento.