Comandi Linux

Comando caso BASH

Comando caso BASH

Il comando case Bash viene utilizzato per intraprendere l'azione corretta confrontando i dati come l'istruzione if. Funziona come un'istruzione switch-case di altri linguaggi di programmazione standard. Questo comando inizia con l'istruzione 'case' e si chiude con l'istruzione 'esac'. Non viene utilizzata alcuna istruzione break nel comando case e la doppia parentesi (;;) è richiesta per menzionare l'istruzione o le istruzioni per qualsiasi corrispondenza particolare. Questo comando espande l'espressione e cerca di trovare una corrispondenza con il modello dato e il codice dello stato di uscita di questo comando saràzero se non verrà trovata alcuna corrispondenza. Alcuni esempi comuni di istruzioni case sono mostrati in questo tutorial.

Esempio-1: semplice istruzione case

Una singola espressione condizionale viene utilizzata nel comando bash case per generare l'output in base alla condizione di corrispondenza. Crea un file bash chiamato caso 1.sh con il seguente script bash. Lo script prenderà un valore stringa e abbinerà il valore a ciascuna espressione. Il seguente script genererà "Nessuna voce trovata" se non esiste un'espressione corrispondente,
caso 1.sh

#!/bin/bash
echo "Digita il tuo nome"
leggi il nome
caso $nome in
Sìmin)
echo "Il tuo colore preferito è il blu" ;;
Fahmida)
echo "La tua bevanda preferita è Sprite" ;;
*)
echo "Nessuna voce trovata" ;;
esac

Esegui lo script.

$ bash case1.sh

Produzione:

Il file viene eseguito con un input valido e non valido qui per testare l'output.

Esempio-2: istruzione case multiple con pipe

È possibile applicare più espressioni case nello script bash per eseguire diversi tipi di istruzioni. Il simbolo pipe ( | ) può essere utilizzato per assegnare le espressioni multiple. Crea un file bash chiamato caso2.sh con il seguente script. Dopo aver eseguito lo script, se il valore di input corrisponde a qualsiasi espressione, verrà stampato il valore di testo corrispondente.
caso2.sh

#!/bin/bash
echo "Digita il tuo numero ID"
leggi l'ID
caso $ID in
65341)
echo "La tua posizione è la prima" ;;
97564|88453)
echo "La tua posizione è 2a" ;;
45087)
echo "La tua posizione è 3°" ;;
*)
echo "ID non valido" ;;
esac

Esegui lo script .

$ bash case2.sh

Produzione:

Questo script funziona anche come l'esempio precedente. L'unica differenza è che i valori di espressioni multiple vengono testati per un singolo output.

Esempio 3: come uscire dal blocco di istruzioni case/esac

Quando il comando bash case viene utilizzato in un ciclo infinito, è necessario utilizzare il comando exit per terminare il ciclo. Questo esempio mostra come possono essere eseguiti questi tipi di attività. Crea un file di testo chiamato caso3.sh con il seguente script. Questo script prenderà qualsiasi numero da 1 a 3 come input. Se l'input è 1, verranno aggiunti due numeri, se l'input è 2, verranno sottratti due numeri e se il numero di input è 3, verranno moltiplicati due numeri. L'output sarà "Inserimento non valido" se il numero di input è maggiore di 3 o minore di 1 o vuoto.
caso3.sh

#!/bin/bash
#!/bin/bash
mentre (vero)
fare
a=8
b=4
((x=$a+$b))
((y=$a-$b))
((z=$a*$b))
echo "Tipo 1 o 2 o 3"
leggi risposta
caso $ans in
1) echo "La somma di $a e $b è $x & exit" ;;
2) echo "La sottrazione di $a e $b è $y & exit" ;;
3) echo "La moltiplicazione di $a e $b è $z & exit" ;;
*) echo "Voce non valida"
esac
fatto

Esegui lo script.

$ bash case3.sh

Produzione:

Lo script continuerà a essere eseguito finché non verrà premuto ctrl+c.

Esempio-4: verifica del valore dell'argomento della riga di comando vuoto

La variabile dell'argomento della riga di comando può essere utilizzata nell'istruzione bash case. Crea un file chiamato caso4.sh con il seguente script che controllerà il valore della variabile secondo argomento.

#!/bin/bash
caso "$2" in
"Ubuntu")
echo "Il secondo argomento è $2."
;;
"CentOS")
echo "Il secondo argomento è $2."
;;
"")
echo "Il secondo argomento è vuoto."
;;
esac

Esegui lo script.

$ bash case4.sh

Produzione:

Qui, lo script viene eseguito per la prima volta senza alcun secondo valore di argomento della riga di comando e l'output mostra "Il secondo argomento è vuoto". Quando lo script viene eseguito con un secondo valore di argomento della riga di comando per la seconda volta, non viene mostrato alcun output.

Esempio-5: dichiarazione di case multiple basata sull'input dell'utente

Crea un file bash chiamato caso5.sh con il seguente script. Lo script prenderà il nome del mese come input dell'utente. Se il nome del mese corrisponde a qualsiasi valore di caso, verrà assegnato un particolare messaggio di testo nella variabile Messaggio. Il valore di input deve essere il nome completo del mese o il nome del mese di tre caratteri.

caso5.sh

#!/bin/bash
echo "Digita il nome di un mese"
leggi il mese
caso $ mese in
gennaio|gen*)
Messaggio=" Il 21 febbraio è la nostra festa internazionale della mamma."
;;
febbraio|febbraio*)
Messaggio=" Il 21 febbraio è la nostra festa internazionale della mamma."
;;
marzo|mar*)
Messaggio="9 marzo è la giornata mondiale del rene kidney."
;;
aprile|aprile*)
Message="Il mese corrente non è febbraio"
;;
maggio|maggio*)
Message="Il mese corrente è febbraio"
;;
giugno|giu*)
Message="Il mese corrente è febbraio"
;;
*)
Messaggio = "Nessuna informazione corrispondente trovata"
;;
esac
echo $Message

Esegui lo script.

$ bash case5.sh

Produzione:

Apparirà il seguente output per il valore di input, 'March' o 'Mar'.

Esempio 6: Controlla variabile nell'istruzione case bash

Qualsiasi valore di stringa può essere stampato controllando il valore della variabile dell'argomento della riga di comando. Crea un file di testo chiamato caso6.sh con il seguente script. In questo esempio, viene controllato il valore della prima variabile di argomento e se il valore è vuoto, verrà stampata una stringa, "Mi piace la programmazione bash".

caso6.sh

#!/bin/bash
caso $1 in
("") echo "Mi piace la programmazione bash";
esac

Esegui lo script.

$ bash case6.sh

Produzione:

Questo script viene eseguito con e senza i primi argomenti. Non ci sarà alcun output se non passa alcuna variabile di argomento della riga di comando.

Conclusione

Diversi usi del comando bash case sono mostrati in questo articolo. Se i lettori praticano correttamente questi esempi, sarà più facile per loro risolvere molti problemi di programmazione bash.

I migliori giochi da giocare con il tracciamento delle mani
Oculus Quest ha recentemente introdotto la grande idea del tracciamento manuale senza controller. Con un numero sempre crescente di giochi e attività ...
Come mostrare l'overlay OSD in app e giochi Linux a schermo intero
Giocare a giochi a schermo intero o utilizzare app in modalità a schermo intero senza distrazioni può tagliarti fuori dalle informazioni di sistema ri...
Le 5 migliori carte di acquisizione del gioco
Abbiamo tutti visto e amato i giochi in streaming su YouTube. PewDiePie, Jakesepticye e Markiplier sono solo alcuni dei migliori giocatori che hanno g...