Nella programmazione bash, l'istruzione del caso aiuta a semplificare i condizionali complessi quando ci sono più scelte diverse. Invece di utilizzare le istruzioni se nidificate, possiamo invece utilizzare l'istruzione del caso per rendere il codice bash più leggibile e gestibile.
Il rendiconto del caso Bash condivide somiglianze con JavaScript e C Switch. Tuttavia, la differenza principale è, una volta che corrisponde a uno schema, non cerca alcuna corrispondenza aggiuntiva.
Questa guida coprirà le basi della dichiarazione del caso bash con vari esempi.
Dichiarazione del caso Bash
La struttura fondamentale della dichiarazione del caso è la seguente.
casoIn )
dichiarazioni
;;)
dichiarazioni
;;
*)
dichiarazioni
;;
Esac
Ecco una breve rottura della struttura:
Avere una comprensione della dichiarazione di Bash If-Else è utile per comprendere e padroneggiare la dichiarazione del caso bash.
Esempi di dichiarazioni del caso bash
Dichiarazione del caso usando valori numerici
Ora che conosciamo le basi, il momento di verificarlo in azione. Dai un'occhiata al seguente script.
#!/Bin/Bash
echo -n "Immettere il valore:"
Leggi il valore
Caso $ valore in
1)
echo "uno" ;;
2)
echo "due" ;;
3)
echo "tre" ;;
4 | 5)
eco "maggiore di tre" ;;
*)
echo "valore sconosciuto" ;;
Esac
Salva lo script. Contrassegnarlo come eseguibile.
$ chmod +x campione.sh
Ora, esegui lo script.
$ ./campione.sh
Lo script chiederà di inserire un valore. Se il valore corrisponde a uno qualsiasi dei modelli, eseguirà la clausola corrispondente. Se non è stata trovata alcuna corrispondenza, corrisponderà alla clausola predefinita.
Dichiarazione del caso che utilizza stringhe
Nel prossimo esempio, useremo stringhe per abbinare i valori.
#!/Bin/Bash
echo -n "Inserisci il pianeta:"
Leggi il pianeta
Caso $ pianeta in
Mercurio | Venere | Terra | Marte | Giove | Saturno | Urano | Nettuno)
Echo "$ pianeta è un pianeta del sistema solare"
;;
Plutone)
echo "$ pianeta è un planeta nano"
;;
"Pianeta nove")
echo "$ pianeta non ancora scoperto"
;;
*)
Echo "non dal sistema solare"
;;
Esac
Lo script verrà eseguito come il primo esempio. Chiederà un nome del pianeta, verificherà se l'ingresso corrisponde a qualsiasi clausola ed eseguirà la clausola di corrispondenza.
Se hai esaminato attentamente, noterai che "Planet Nine" è l'unico valore avvolto nelle citazioni. È perché c'è spazio in esso. Usando le citazioni, stiamo dicendo al guscio per trattarlo come parte di un singolo modello.
Sensibilità al caso nella dichiarazione del caso
Si noti che nell'ultimo esempio, l'input è sensibile al caso. Questo è il comportamento bash predefinito. Tuttavia, possiamo dire a Shell di eseguire lo script in modalità insensibile al caso.
Per fare ciò, aggiungi la seguente riga all'inizio dello script.
$ shopt -s nocasematch
La sceneggiatura dovrebbe apparire così.
Ora, prova lo script. Immettere il valore con un caso diverso.
$ ./campione.sh
Pensiero finale
Questa guida copre le basi delle dichiarazioni del caso bash. Dimostra anche come implementarli negli script bash. Dovresti sentirti a tuo agio nell'uso dell'istruzione Case. Le istruzioni dei casi bash vengono spesso utilizzati per passare i parametri agli script di shell da una riga di comando. Ad esempio, gli script INIT utilizzano le dichiarazioni dei casi per avviare, arrestare e riavviare i servizi. Dopo aver letto questa guida, sarai in grado di implementare la dichiarazione del caso bash negli script.
Felice calcolo!