0Pricing
Linux Command Line & Bash Scripting Mastery · Lezione

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";;
esac

Il 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";;
esac

Corrispondere 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";;
esac

Pattern 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";;
esac

Intervalli 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";;
esac

Un 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";;
esac

case 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";;
esac

Proseguire 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";;
esac

Dispatch 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}";;
esac

Verifica 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

  1. Strutture iterative (for, while)
  2. Funzioni negli script Bash
  3. Argomenti e opzioni degli script ($@, $#, getopts)
  4. L'istruzione case e il pattern matching
← Torna a Linux Command Line & Bash Scripting Mastery