GNU/Linux >> Linux Esercitazione >  >> Linux

Dichiarazione del caso Bash

Il case bash istruzione viene generalmente utilizzata per semplificare condizionali complessi quando si hanno più scelte diverse. Usando il case istruzione invece di if annidato le istruzioni ti aiuteranno a rendere i tuoi script bash più leggibili e facili da mantenere.

Il case di Bash L'istruzione ha un concetto simile con Javascript o C switch dichiarazione. La differenza principale è che, a differenza del C switch dichiarazione, il case di Bash istruzione non continua a cercare una corrispondenza di pattern una volta che ne ha trovata una ed ha eseguito le istruzioni associate a quel pattern.

In questo tutorial, tratteremo le basi del case Bash istruzione e mostrarti come usarlo nei tuoi script di shell.

case Sintassi dell'istruzione #

Il case di Bash dichiarazione assume la forma seguente:

case EXPRESSION in

  PATTERN_1)
    STATEMENTS
    ;;

  PATTERN_2)
    STATEMENTS
    ;;

  PATTERN_N)
    STATEMENTS
    ;;

  *)
    STATEMENTS
    ;;
esac
  • Ogni case l'istruzione inizia con il case parola chiave, seguita dall'espressione case e da in parola chiave. L'istruzione termina con esac parola chiave.
  • Puoi usare più pattern separati da | operatore. Il ) l'operatore termina un elenco di modelli.
  • Un pattern può avere caratteri speciali.
  • Un pattern e i suoi comandi associati sono conosciuti come una clausola.
  • Ogni clausola deve essere terminata con ;; .
  • I comandi corrispondenti al primo pattern che corrisponde all'espressione vengono eseguiti.
  • È pratica comune utilizzare il simbolo dell'asterisco jolly (* ) come modello finale per definire il caso predefinito. Questo modello corrisponderà sempre.
  • Se nessun modello corrisponde, lo stato di ritorno è zero. In caso contrario, lo stato di ritorno è lo stato di uscita dei comandi eseguiti.

Esempio di istruzione del caso #

Ecco un esempio usando il case dichiarazione in uno script bash che stamperà la lingua ufficiale di un determinato paese:

lingue.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

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 a echo il comando 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 di asterisco jolly predefinito, supponiamo che lo script eseguirà l'echo Argentina comando 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 comprensione di come scrivere bash case dichiarazioni. Sono spesso usati per passare parametri a uno script di shell dalla riga di comando. Ad esempio, gli script init utilizzano case istruzioni per l'avvio, l'arresto o il riavvio dei servizi.

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. Come utilizzare l'istruzione if else condizionali nello script Bash

  2. Bash Istruzione If-Else con esempi

  3. 4 Esempi di istruzioni Bash If ( If then fi, If then else fi, If elif else fi, Nested if )

  4. 5 Esempi di dichiarazioni di Bash Case

  5. Bash/sh istruzione 'if else'

Bash if..else Statement

Bash Shebang

Bash Scripting – Case Statement

Come lavorare con l'istruzione Case negli script Bash

Bash If Else Sintassi con esempi

Comprendere Bash If Else e altre dichiarazioni condizionali