Уроки по Bash часть 5: Условный оператор case
Inhoudsopgave:
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
casegevolgd 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.
Soloway Case onthult Big Business Behind Spam
Getuigenis tijdens de veroordelingshoorzitting voor de zogenaamde spam king bood een kijkje in de big business van spam.
Spyware Case eindelijk gesloten voor docent Julie Amero
Voormalig onderwijzeres Julie Amero heeft een boete van $ 100 betaald om haar beruchte spyware-case te beëindigen.
Wikipedia Censorship Case stuurt 'verwarrend' bericht
Een jurist vraagt zich af of een waakhond voor kindermishandeling een verbod op een Wikipedia-pagina eerder had moeten omdraaien deze week.







