Android

Bash case verklaring

Уроки по Bash часть 5: Условный оператор case

Уроки по Bash часть 5: Условный оператор case

Inhoudsopgave:

Anonim

Bash case statements worden meestal gebruikt om complexe voorwaardes te vereenvoudigen wanneer u meerdere verschillende keuzes hebt. Als u de case-instructie gebruikt in plaats van geneste if-instructies, kunt u uw bash-scripts leesbaarder en gemakkelijker te onderhouden maken.

De Bash case-instructie heeft een soortgelijk concept met de Javascript- of C-switch-instructie. Het belangrijkste verschil is dat, in tegenstelling tot de instructie C switch, de Bash case-instructie niet blijft zoeken naar een patroonovereenkomst als deze eenmaal is gevonden en instructies heeft uitgevoerd die aan dat patroon zijn gekoppeld.

In deze tutorial zullen we de basisprincipes van de Bash case-statements behandelen en laten zien hoe je ze kunt gebruiken in je shellscripts.

Case Statement-syntaxis

De Bash case-verklaring heeft de volgende vorm:

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

  • Elke case-instructie begint met het sleutelwoord case gevolgd door de case-expressie en het sleutelwoord in. De instructie eindigt met het sleutelwoord esac.U kunt meerdere patronen gebruiken gescheiden door de | operator. De operator) beëindigt een patroonlijst. Een patroon kan speciale tekens bevatten. Een patroon en de bijbehorende opdrachten staan ​​bekend als een clausule. Elke clausule moet worden beëindigd met ;; .De opdrachten die overeenkomen met het eerste patroon dat overeenkomt met de uitdrukking worden uitgevoerd. Het is een gebruikelijke praktijk om het jokerteken ( * ) als jokerteken te gebruiken als laatste patroon om het standaardgeval te definiëren. Dit patroon komt altijd overeen. Als er geen patroon is, is de retourstatus nul. Anders is de retourstatus de exitstatus van de uitgevoerde opdrachten.

Case Statement-voorbeeld

Hier is een voorbeeld met de case-opdracht in een bash-script dat de officiële taal van een bepaald land zal afdrukken:

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

Sla het aangepaste script op als een bestand en voer het uit vanaf de opdrachtregel.

bash languages.sh

In het script wordt u gevraagd een land in te voeren. Als u bijvoorbeeld "Litouwen" typt, komt dit overeen met het eerste patroon en wordt de echo opdracht in die clausule uitgevoerd.

Het script zal de volgende uitvoer afdrukken:

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

Conclusie

Inmiddels zou u een goed begrip moeten hebben van het schrijven van bash-casusverklaringen. Ze worden vaak gebruikt om parameters door te geven aan een shellscript vanaf de opdrachtregel. De init-scripts gebruiken bijvoorbeeld case-statements voor het starten, stoppen of herstarten van services.

bash-terminal