L'istruzione case e il pattern matching
Gestisca in modo chiaro molti valori diversi. Impari a usare l'istruzione case, i glob pattern, le corrispondenze con più pattern e a evitare lunghe catene if-elif.
L'istruzione case e il pattern matching è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.
Perché usare case
Quando una variabile può assumere molti valori, una lunga catena if/elif/elif diventa poco leggibile. L'istruzione case confronta un valore con dei pattern ed è molto più chiara.
Sintassi di base
Un blocco case verifica un valore rispetto a dei pattern, ciascuno dei quali termina con ), e un corpo che termina con ;;. L'intero blocco termina con esac.
case "$fruit" in
apple) echo "red";;
banana) echo "yellow";;
esacIl caso predefinito
Il pattern *) corrisponde a qualsiasi valore e funge da caso predefinito generale, come else.
case "$cmd" in
start) echo "starting";;
stop) echo "stopping";;
*) echo "unknown command";;
esacCorrispondere più pattern
Utilizzare | per far corrispondere più pattern in uno stesso ramo.
case "$ans" in
y|Y|yes) echo "Confirmed";;
n|N|no) echo "Cancelled";;
esacPattern glob
I pattern usano il globbing della shell, non le espressioni regolari: * corrisponde a qualsiasi stringa, ? a un singolo carattere e [...] a una classe di caratteri.
case "$file" in
*.txt) echo "text file";;
*.jpg|*.png) echo "image";;
esacIntervalli di caratteri
I pattern tra parentesi quadre corrispondono agli intervalli, utili per raggruppare in base alla prima lettera o cifra.
case "$ch" in
[a-z]) echo "lowercase";;
[0-9]) echo "digit";;
esacUn menu semplice
case è particolarmente utile negli script basati su menu, in cui l'utente seleziona un'opzione.
read -p "Choice: " opt
case "$opt" in
1) backup;;
2) restore;;
*) echo "Invalid";;
esaccase e if a confronto
Utilizzare if per condizioni booleane complesse (intervalli, confronti, più variabili). Utilizzare case quando il flusso dipende dal valore o dal pattern di una sola variabile.
Racchiudere tra virgolette il valore
Racchiudere tra virgolette il valore verificato ("$var") per gestire in modo sicuro i valori vuoti o contenenti spazi.
case "$input" in
"") echo "empty";;
*) echo "got: $input";;
esacProseguire dopo una corrispondenza con ;;&
Bash supporta ;;& per continuare a verificare i pattern successivi dopo una corrispondenza, consentendo l'esecuzione di più rami.
case "$f" in
*.tar) echo "tar";;&
*.gz) echo "gzip";;
esacDispatch degli argomenti
Un uso comune nella pratica consiste nell'analizzare il primo argomento dello script per implementare sottocomandi, come in uno strumento CLI.
case "$1" in
init) do_init;;
build) do_build;;
*) echo "usage: $0 {init|build}";;
esacVerifica rapida
Verifichi la Sua comprensione.
Riepilogo
Ha imparato a usare l'istruzione case: confrontare un valore con pattern glob, terminare i rami con ;;, combinare i pattern con |, usare *) come caso predefinito e preferire case a lunghe catene if-elif per gestire in modo chiaro i valori e il dispatch degli argomenti.
Domande Frequenti
La lezione «L'istruzione case e il pattern matching» è gratuita?
Sì — il testo completo di «L'istruzione case e il pattern matching» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.
Cosa imparerò in «L'istruzione case e il pattern matching»?
Gestisca in modo chiaro molti valori diversi. Impari a usare l'istruzione case, i glob pattern, le corrispondenze con più pattern e a evitare lunghe catene if-elif. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare DevOps Bootcamp?
Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «L'istruzione case e il pattern matching»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?
Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Strutture iterative (for, while)
- Funzioni negli script Bash
- Argomenti e opzioni degli script ($@, $#, getopts)
- L'istruzione case e il pattern matching