case
bash příkaz se obecně používá ke zjednodušení složitých podmínek, když máte více různých možností. Pomocí case
příkaz namísto vnořeného if
příkazy vám pomohou učinit vaše bash skripty čitelnějšími a snadněji udržovatelnými.
case
Bash příkaz má podobný koncept jako Javascript nebo C switch
prohlášení. Hlavní rozdíl je v tom, že na rozdíl od C switch
prohlášení, case
Bash příkaz nepokračuje v hledání shody vzoru, jakmile ji najde a provede příkazy spojené s daným vzorem.
V tomto tutoriálu probereme základy case
Bash a ukáže vám, jak jej používat ve vašich shellových skriptech.
case
Syntaxe příkazu #
case
Bash výpis má následující tvar:
case EXPRESSION in
PATTERN_1)
STATEMENTS
;;
PATTERN_2)
STATEMENTS
;;
PATTERN_N)
STATEMENTS
;;
*)
STATEMENTS
;;
esac
- Každý
case
příkaz začínácase
klíčové slovo, za nímž následuje výraz pro malá a velká písmena ain
klíčové slovo. Příkaz končíesac
klíčové slovo. - Můžete použít více vzorů oddělených
|
operátor.)
operátor ukončí seznam vzorů. - Vzor může mít speciální znaky.
- Vzor a jeho přidružené příkazy jsou známé jako klauzule.
- Každá klauzule musí být ukončena znakem
;;
. - Provedou se příkazy odpovídající prvnímu vzoru, který odpovídá výrazu.
- Je běžnou praxí používat zástupný symbol hvězdičky (
*
) jako konečný vzor pro definování výchozího případu. Tento vzor bude vždy odpovídat. - Pokud neodpovídá žádnému vzoru, návratový stav je nula. V opačném případě je návratovým stavem stav ukončení provedených příkazů.
Příklad prohlášení o případu č.
Zde je příklad použití case
výpis ve skriptu bash, který vytiskne oficiální jazyk dané země:
#!/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
Uložte vlastní skript jako soubor a spusťte jej z příkazového řádku.
bash languages.sh
Skript vás požádá o zadání země. Pokud například zadáte „Litva“, bude odpovídat prvnímu vzoru a echo
bude proveden příkaz v této klauzuli.
Skript vytiskne následující výstup:
Enter the name of a country: Lithuania
The official language of Lithuania is Lithuanian
Pokud zadáte zemi, která neodpovídá žádnému jinému vzoru kromě výchozího zástupného symbolu hvězdičky, řekněme Argentina, skript spustí echo
commanduvnitř výchozí klauzule.
Enter the name of a country: Argentina
The official language of Argentina is unknown
Závěr č.
Nyní byste měli dobře rozumět tomu, jak psát bash case
prohlášení. Často se používají k předávání parametrů skriptu shellu z příkazového řádku. Například init skripty používají case
příkazy pro spouštění, zastavování nebo restartování služeb.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.