Android

Bash sag-erklæring

Indholdsfortegnelse:

Anonim

Bash case-udsagn bruges generelt til at forenkle komplekse betingelser, når du har flere forskellige valg. Brug af sagsangivelsen i stedet for indlejret, hvis udsagn vil hjælpe dig med at gøre dine bash-scripts mere læsbare og lettere at vedligeholde.

Udsagnet fra Bash-sagen har et lignende koncept med Javascript- eller C-switch-erklæringen. Den største forskel er, at i modsætning til C-switch-erklæringen, fortsætter Bash-sagsudtalelsen ikke med at søge efter et mønster-match, når den først har fundet en og udført udsagn, der er knyttet til det mønster.

I denne tutorial vil vi dække det grundlæggende i Bash-sagangivelserne og vise dig, hvordan du bruger dem i dine shell-scripts.

Sagserklæring Syntax

Uttalelsen fra Bash-sagen har følgende form:

case EXPRESSION in PATTERN_1) STATEMENTS;; PATTERN_2) STATEMENTS;; PATTERN_N) STATEMENTS;; *) STATEMENTS;; esac

  • Hver sagsangivelse starter med sagsnøgleordet efterfulgt af sagsudtrykket og in nøgleordet. Uddannelsen slutter med esac nøgleordet. Du kan bruge flere mønstre adskilt af | operatør. Operatøren afslutter en mønsterliste. Et mønster kan have specialtegn. Et mønster og dets tilknyttede kommandoer er kendt som en klausul. Hver klausul skal afsluttes med ;; .Kommandoerne, der svarer til det første mønster, der matcher udtrykket, udføres. Det er en almindelig praksis at bruge jokertegnets asterisk-symbol ( * ) som et sidste mønster til at definere standardtilfældet. Dette mønster matcher altid. Hvis der ikke matches noget mønster, er returstatus nul. Ellers er returstatus exit-status for de udførte kommandoer.

Eksempel på sagopgørelse

Her er et eksempel, der bruger sagsangivelsen i et bash-script, der udskriver det officielle sprog i et givet land:

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

Gem det tilpassede script som en fil, og kør det fra kommandolinjen.

bash languages.sh

Scriptet beder dig om at komme ind i et land. For eksempel, hvis du skriver "Litauen", vil det matche det første mønster, og echo kommandoen i denne klausul udføres.

Scriptet udskriver følgende 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

Konklusion

I øjeblikket skal du have en god forståelse af, hvordan du skriver bash case-udsagn. De bruges ofte til at videregive parametre til et shell-script fra kommandolinjen. For eksempel bruger init-scripts sagsangivelser til start, stop eller genstart af tjenester.

bash terminal