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 Linux Command Line & Bash Scripting Mastery 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 Linux Command Line & Bash Scripting Mastery, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Linux Command Line & Bash Scripting Mastery 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 Linux Command Line & Bash Scripting Mastery, passa a CoddyKit PRO. Il corso Linux Command Line & Bash Scripting Mastery 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 Linux Command Line & Bash Scripting Mastery 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 Linux Command Line & Bash Scripting Mastery?
Non è richiesta alcuna esperienza precedente. Linux Command Line & Bash Scripting Mastery 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 Linux Command Line & Bash Scripting Mastery?
Sì. Ogni lezione Linux Command Line & Bash Scripting Mastery 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