logo

Caso Bash

In questo argomento discuteremo le basi delle istruzioni case e come utilizzarle negli script Bash.

L'istruzione case Bash è la forma più semplice di IF-THEN-ELSE con molti elementi ELIF. L'uso dell'istruzione case rende il nostro script bash più leggibile e più facile da mantenere. Questi vengono generalmente applicati per semplificare le condizioni complesse con molteplici scelte diverse.

L'istruzione case di Bash segue una logica simile all'istruzione switch Javascript o C. C'è una leggera differenza, come segue:

  • L'istruzione case di Bash accetta un valore una volta e lo verifica più volte. Smette di cercare un pattern una volta che lo ha trovato ed eseguito l'istruzione ad esso collegata, il che è quasi l'opposto nel caso dell'istruzione switch del C.

Sintassi dell'istruzione Case

La sintassi dell'istruzione bash case è riportata di seguito:

 case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac 

Ci sono alcuni punti chiave delle istruzioni bash case:

  • Ogni istruzione case in bash inizia con la parola chiave 'case', seguita dall'espressione case e dalla parola chiave 'in'. L'istruzione case è chiusa dalla parola chiave 'esac'.
  • Possiamo applicare più modelli separati da | operatore. L'operatore ) indica la fine di un elenco di modelli.
  • Un modello contenente le istruzioni viene definito clausola e deve terminare con un doppio punto e virgola (;;).
  • Un simbolo di asterisco (*) viene utilizzato come modello finale per definire il caso predefinito. Viene utilizzato come caso predefinito quando utilizzato come ultimo caso.

Come funziona

Prima di tutto, l'istruzione case espande l'espressione e cerca di corrispondere a ciascuno dei modelli inclusi. Quando trova una corrispondenza, tutte le istruzioni collegate vengono eseguite fino al doppio punto e virgola (;;). Dopo la prima corrispondenza, case termina con lo stato di uscita dell'ultima istruzione eseguita.

Se non esiste alcun modello corrispondente, lo stato di uscita del caso è zero. Altrimenti, lo stato di ritorno è lo stato di uscita delle istruzioni eseguite.

Se viene utilizzato il modello di asterisco predefinito, verrà eseguito in caso di modello non corrispondente.

Cerchiamo di comprendere questo meccanismo con l'aiuto di alcuni esempi:

Esempio 1

In questo esempio, abbiamo definito uno scenario semplice per dimostrare l'uso dell'istruzione case.

BashScript

 #!/bin/bash echo 'Do you know Java Programming?' read -p 'Yes/No? :' Answer case $Answer in Yes|yes|y|Y) echo 'That's amazing.' echo ;; No|no|N|n) echo 'It's easy. Let's start learning from javatpoint.' ;; esac 

Produzione

Caso Bash

Esempio 2

In questo esempio, abbiamo definito uno scenario combinato in cui è presente anche un caso predefinito quando non viene trovato alcun caso corrispondente precedente.

elenco dei caratteri in gimp

BashScript

 #!/bin/bash echo 'Which Operating System are you using?' echo 'Windows, Android, Chrome, Linux, Others?' read -p 'Type your OS Name:' OS case $OS in Windows|windows) echo 'That's common. You should try something new.' echo ;; Android|android) echo 'This is my favorite. It has lots of applications.' echo ;; Chrome|chrome) echo 'Cool!!! It's for pro users. Amazing Choice.' echo ;; Linux|linux) echo 'You might be serious about security!!' echo ;; *) echo 'Sounds interesting. I will try that.' echo ;; esac 

Produzione

Abbiamo eseguito lo script con tre input diversi, controlla l'output di seguito:

Caso Bash

Conclusione

In questo argomento, abbiamo appreso la sintassi e l'utilizzo dell'istruzione Bash Case con gli esempi.