Modello di abbinamento nell'istruzione Case Bash

Modello di abbinamento nell'istruzione Case Bash

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.

caso In
)
dichiarazioni
;;
)
dichiarazioni
;;
*)
dichiarazioni
;;
Esac

Ecco una breve rottura della struttura:

  • L'istruzione Case inizierà con la parola chiave "caso" e terminerà con la parola chiave "ESAC", simile a come se condizionale inizi con "if" e termina con "fi".
  • Ci possono essere più motivi separati da "|". L'operatore ")" segna la fine dell'elenco dei modelli.
  • I modelli possono contenere caratteri speciali.
  • Una volta abbinato uno schema, i suoi comandi associati verranno eseguiti. Insieme, si chiama clausola. Ogni clausola deve finire con ";;". Interrompe qualsiasi tentativo di abbinare ulteriori schemi.
  • La clausola jolly (*) è una pratica comune per definire il caso predefinito. Corrisponderà sempre alla condizione.
  • Se nessun modello corrisponde, l'istruzione del caso restituisce zero. Altrimenti, restituirà il valore di uscita dei comandi eseguiti.

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!