Příkaz Bash case se používá k provedení správné akce porovnáním dat jako příkaz if. Funguje to jako přepínací případ jiných standardních programovacích jazyků. Tento příkaz začíná příkazem „case“ a končí příkazem „esac“. V příkazu case se nepoužívá příkaz break a je třeba uvést dvojitý závorek (;;), který uvádí prohlášení pro konkrétní shodu. Tento příkaz rozšíří výraz a pokusí se odpovídat danému vzoru a stavový kód ukončení tohoto příkazu bude nulový, pokud nebude nalezena shoda. V tomto kurzu jsou uvedeny některé běžné příklady příkazů case.
Příklad 1: jednoduché prohlášení o případu
Jeden podmíněný výraz se používá v příkazu bash case ke generování výstupu na základě odpovídající podmínky. Vytvořte soubor bash s názvem případ1.sh s následujícím bash skriptem. Skript vezme hodnotu řetězce a porovná hodnotu s každým výrazem. Následující skript vygeneruje „Nebyla nalezena žádná položka“, pokud neexistuje odpovídající výraz,
případ1.sh
echo "Napište své jméno"
číst jméno
případ $ name v
Yesmin)
echo "Vaše oblíbená barva je modrá" ;;
Fahmida)
echo "Váš oblíbený nápoj je Sprite" ;;
*)
echo "Nenalezena žádná položka" ;;
esac
Spusťte skript.
$ bash případ 1.shVýstup:
Soubor je zde spuštěn s platným a neplatným vstupem, aby se otestoval výstup.
Příklad-2: prohlášení o více případech s rourou
V bash skriptu lze použít více výrazů velkých a malých písmen k provádění různých typů příkazů. Symbol potrubí (|) lze použít k přiřazení více výrazů. Vytvořte soubor bash s názvem případ2.sh s následujícím skriptem. Po spuštění skriptu, pokud se vstupní hodnota shoduje s libovolným výrazem, bude vytištěna odpovídající textová hodnota.
případ2.sh
echo "Napište své identifikační číslo"
číst ID
případ $ ID v
65341)
echo "Vaše pozice je první" ;;
97564 | 88453)
echo "Vaše pozice je druhá" ;;
45087)
echo "Vaše pozice je 3." ;;
*)
echo "Neplatné ID" ;;
esac
Spusťte skript .
$ bash case2.shVýstup:
Tento skript funguje stejně jako v předchozím příkladu. Jediný rozdíl je v tom, že více hodnot výrazu je testováno pro jeden výstup.
Příklad-3: Jak ukončit blok příkazů / esac
Když je příkaz bash case použit pod nekonečnou smyčkou, je k ukončení smyčky nutné použít příkaz exit. Tento příklad ukazuje, jak lze tyto typy úkolů provést. Vytvořte textový soubor s názvem případ3.sh s následujícím skriptem. Tento skript bude mít jako vstup jakékoli číslo od 1 do 3. Pokud je vstup 1, pak se přidají dvě čísla, pokud je vstup 2, pak se dvě čísla odečtou a pokud je vstupní číslo 3, pak se dvě čísla vynásobí. Výstup bude „Neplatný záznam“, pokud je číslo vstupu větší než 3 nebo menší než 1 nebo prázdné.
případ3.sh
#!/ bin / bash
while (true)
dělat
a = 8
b = 4
((x = $ a + $ b))
((y = $ a- $ b))
((z = $ a * $ b))
echo "Typ 1 nebo 2 nebo 3"
číst odpovědi
případ $ ans v
1) echo "Součet $ a a $ b je $ x & exit" ;;
2) echo "Odečtení $ a a $ b je $ y & exit" ;;
3) echo "Násobení $ a a b je $ z & exit" ;;
*) echo "Neplatný záznam"
esac
Hotovo
Spusťte skript.
$ bash case3.shVýstup:
Skript se bude nadále spouštět, dokud nebude stisknuto ctrl + c.
Příklad 4: Kontrola prázdné hodnoty argumentu příkazového řádku
Proměnnou argumentu příkazového řádku lze použít v příkazu bash case. Vytvořte soubor s názvem případ4.sh s následujícím skriptem, který zkontroluje hodnotu druhé proměnné argumentu.
#!/ bin / bashpřípad "$ 2" v
„Ubuntu“)
echo "Druhý argument je $ 2."
;;
„CentOS“)
echo "Druhý argument je $ 2."
;;
„“)
echo "Druhý argument je prázdný."
;;
esac
Spusťte skript.
$ bash případ4.shVýstup:
Zde je skript poprvé spuštěn bez jakékoli druhé hodnoty argumentu příkazového řádku a na výstupu se zobrazí „Druhý argument je prázdný“. Pokud je skript spuštěn s druhou hodnotou argumentu příkazového řádku podruhé, pak se nezobrazí žádný výstup.
Příklad-5: prohlášení o více případech na základě vstupu uživatele
Vytvořte soubor bash s názvem případ5.sh s následujícím skriptem. Skript vezme název měsíce jako vstup uživatele. Pokud se název měsíce shoduje s libovolnou hodnotou případu, bude konkrétní proměnná přiřazena do proměnné Zpráva. Vstupní hodnota musí být název celého měsíce nebo název měsíce se třemi znaky.
případ5.sh
#!/ bin / bashecho "Zadejte název měsíce"
číst měsíc
případ $ měsíc v
Leden | led *)
Message = "21. února je náš mezinárodní den matek."
;;
Únor | únor *)
Message = "21. února je náš mezinárodní den matek."
;;
Březen | Březen *)
Message = "9. března je světový den ledvin."
;;
Duben | duben *)
Zpráva = "Aktuální měsíc není únor"
;;
Květen | květen *)
Zpráva = "Aktuální měsíc je únor"
;;
Červen | červen *)
Zpráva = "Aktuální měsíc je únor"
;;
*)
Zpráva = "Nebyly nalezeny žádné odpovídající informace"
;;
esac
echo $ Zpráva
Spusťte skript.
$ bash case5.shVýstup:
Pro vstupní hodnotu se zobrazí následující výstup, „březen“ nebo „březen“.
Příklad 6: Zkontrolujte proměnnou v příkazu bash case
Libovolnou hodnotu řetězce lze vytisknout kontrolou hodnoty proměnné argumentu příkazového řádku. Vytvořte textový soubor s názvem případ6.sh s následujícím skriptem. V tomto příkladu je zkontrolována hodnota první proměnné argumentu a pokud je hodnota prázdná, bude vytištěn řetězec „I like bash programming“.
případ6.sh
#!/ bin / bashpřípad $ 1 v
("") echo "Mám rád bash programování";
esac
Spusťte skript.
$ bash case6.shVýstup:
Tento skript se provádí s prvními argumenty i bez nich. Pokud neprojde žádná proměnná argumentu příkazového řádku, nebude žádný výstup.
Závěr
V tomto článku jsou uvedena různá použití příkazu bash case. Pokud čtenáři procvičí tyto příklady správně, bude pro ně snazší vyřešit mnoho problémů s programováním bash.