androide

Dichiarazione del caso Bash

FizzBuzz: One Simple Interview Question

FizzBuzz: One Simple Interview Question

Sommario:

Anonim

Le dichiarazioni del caso Bash sono generalmente utilizzate per semplificare condizionali complessi quando si hanno più scelte diverse. L'uso dell'istruzione case anziché delle istruzioni if ​​annidate ti aiuterà a rendere i tuoi script bash più leggibili e più facili da gestire.

L'istruzione case Bash ha un concetto simile con l'istruzione switch Javascript o C. La differenza principale è che, diversamente dall'istruzione switch C, l'istruzione case Bash non continua a cercare una corrispondenza di pattern una volta trovata una ed eseguita istruzioni associate a quel pattern.

In questo tutorial, tratteremo le basi delle dichiarazioni del caso Bash e ti mostreremo come usarle negli script della shell.

Sintassi dell'istruzione case

L'istruzione case Bash ha la forma seguente:

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 case e dalla parola chiave in. L'istruzione termina con la esac chiave esac possibile utilizzare più pattern separati dal | operatore. L'operatore ) termina un elenco di modelli. Un modello può avere caratteri speciali. Un modello e i comandi associati sono noti come clausole. Ogni clausola deve essere terminata con ;; Vengono eseguiti i comandi corrispondenti al primo modello che corrisponde all'espressione. È prassi comune utilizzare il simbolo asterisco con caratteri jolly ( * ) come modello finale per definire il caso predefinito. Questo modello corrisponderà sempre. Se non viene trovato alcun modello, lo stato di ritorno è zero. Altrimenti, lo stato di ritorno è lo stato di uscita dei comandi eseguiti.

Esempio di dichiarazione del caso

Ecco un esempio usando l'istruzione case in uno script bash che stamperà la lingua ufficiale di un determinato paese:

languages.sh

#!/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

Salvare lo script personalizzato come file ed eseguirlo dalla riga di comando.

bash languages.sh

Lo script ti chiederà di entrare in un paese. Ad esempio, se si digita "Lituania", corrisponderà al primo modello e verrà eseguito il comando echo in quella clausola.

Lo script stamperà il seguente output:

Enter the name of a country: Lithuania The official language of Lithuania is Lithuanian

Enter the name of a country: Argentina The official language of Argentina is unknown

Conclusione

Ormai dovresti avere una buona conoscenza di come scrivere le dichiarazioni del caso bash. Sono spesso usati per passare parametri a uno script di shell dalla riga di comando. Ad esempio, gli script init utilizzano le istruzioni case per l'avvio, l'arresto o il riavvio dei servizi.

bash terminal