Dichiarazione case in Bash

27 mar 2024 2 min di lettura
Dichiarazione case in Bash
Indice dei contenuti

Introduzione

L'istruzione case bash viene generalmente utilizzata per semplificare condizionali complessi quando sono presenti più scelte diverse. Usare l'istruzione case invece delle istruzioni if nidificate aiuterà a rendere i tuoi script bash più leggibili e più facili da mantenere.

L'istruzione Bash ha un concetto simile all'istruzione case in Javascript o switch in C. La differenza principale è che, a differenza switchdell'istruzione C, l'istruzione Bash casenon continua a cercare un modello corrispondente una volta che ne ha trovato uno ed eseguito le istruzioni associate a quel modello.

Questo tutorial coprirà le basi dell'istruzione Bash casee ti mostrerà come usarla nei tuoi script di shell.

Sintassi dell'istruzione case

La sintassi dell'istruzione case Bash è costituita dalla caseparola chiave " " seguita dal valore da abbinare, dalla inparola chiave " " e da uno o più modelli con i blocchi di codice corrispondenti racchiusi nelle ;;istruzioni " ":

case EXPRESSION in

  PATTERN_1)
    STATEMENTS
    ;;

  PATTERN_2)
    STATEMENTS
    ;;

  PATTERN_N)
    STATEMENTS
    ;;

  *)
    STATEMENTS
    ;;
esac
  • Ogni istruzione case inizia con la parola chiave case, seguita dall'espressione maiuscole e minuscole e dalla parola chiave in. L'affermazione termina con la parola chiave esac.
  • È possibile utilizzare più modelli separati dall'operatore |. L'operatore ) termina un elenco di modelli.
  • Un modello può contenere caratteri speciali .
  • Un modello e i comandi associati sono noti come clausola.
  • Ogni clausola deve terminare con ;;.
  • Vengono eseguiti i comandi corrispondenti al primo modello che corrisponde all'espressione.
  • È pratica comune utilizzare il simbolo asterisco jolly ( *) come modello finale per definire il caso predefinito. Questo modello corrisponderà sempre.
  • Se non viene trovato alcun modello, lo stato restituito è zero. Altrimenti lo stato di ritorno è lo stato di uscita dei comandi eseguiti.

Esempio di dichiarazione del caso

Di seguito è riportato un esempio dell'utilizzo di un'istruzione casein uno script bash che stampa 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 il echocomando 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 asterisco jolly predefinito, diciamo l'Argentina, lo script eseguirà il comando echo 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 conoscenza di come scrivere istruzioni bash case. Vengono spesso utilizzati per passare parametri a uno script di shell dalla riga di comando. Ad esempio, gli script init utilizzano istruzioni case per avviare, arrestare o riavviare i servizi.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.