V tejto téme budeme diskutovať o základoch prípadových príkazov a o tom, ako ich používať v skriptoch Bash.
Bash case je najjednoduchšia forma IF-THEN-ELSE s mnohými prvkami ELIF. Použitím príkazu case je náš bash skript čitateľnejší a ľahšie sa udržiava. Tieto sa vo všeobecnosti používajú na zjednodušenie zložitých podmienok s viacerými rôznymi možnosťami.
Príkaz typu Bash má podobnú logiku ako príkaz Javascript alebo C switch. Je tu malý rozdiel, a to nasledovne:
- Príkaz Bash case nadobudne hodnotu raz a testuje túto hodnotu viackrát. Prestane hľadať vzor, keď ho nájde a vykoná príkaz s ním spojený, čo je takmer opak v prípade príkazu C switch.
Syntax výpisu z prípadu
Syntax príkazu bash case je uvedený nižšie:
case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac
Existuje niekoľko kľúčových bodov vyhlásení bash case:
- Každý prípad v bash začína kľúčovým slovom „case“, za ktorým nasleduje výraz „case“ a kľúčové slovo „in“. Príkaz prípadu je uzavretý kľúčovým slovom 'esac'.
- Môžeme použiť viacero vzorov oddelených | operátor. Operátor ) označuje ukončenie zoznamu vzorov.
- Vzor obsahujúci príkazy sa označuje ako klauzula a musí byť ukončený dvojitou bodkočiarkou (;;).
- Symbol hviezdičky (*) sa používa ako konečný vzor na definovanie predvoleného prípadu. Používa sa ako predvolený prípad, keď sa používa ako posledný prípad.
Ako to funguje
Po prvé, príkaz case rozširuje výraz a snaží sa zhodovať s každým zo zahrnutých vzorov. Keď nájde zhodu, všetky prepojené príkazy sa vykonajú až po dvojitú bodkočiarku (;;). Po prvej zhode sa prípad ukončí stavom ukončenia posledného vykonaného príkazu.
Ak neexistuje zhodný vzor, výstupný stav prípadu je nula. V opačnom prípade je návratový stav výstupným stavom vykonaných príkazov.
Ak sa použije predvolený vzor hviezdičky, vykoná sa v prípade, že sa nenájde žiadny zodpovedajúci vzor.
Pokúsme sa pochopiť tento mechanizmus pomocou niekoľkých príkladov:
Príklad 1
V tomto príklade sme definovali jednoduchý scenár na demonštráciu použitia príkazu case.
Bash skript
#!/bin/bash echo 'Do you know Java Programming?' read -p 'Yes/No? :' Answer case $Answer in Yes|yes|y|Y) echo 'That's amazing.' echo ;; No|no|N|n) echo 'It's easy. Let's start learning from javatpoint.' ;; esac
Výkon
Príklad 2
V tomto príklade sme definovali kombinovaný scenár, kde existuje aj predvolený prípad, keď sa nenájde žiadny predchádzajúci zodpovedajúci prípad.
inštanciovaná java
Bash skript
#!/bin/bash echo 'Which Operating System are you using?' echo 'Windows, Android, Chrome, Linux, Others?' read -p 'Type your OS Name:' OS case $OS in Windows|windows) echo 'That's common. You should try something new.' echo ;; Android|android) echo 'This is my favorite. It has lots of applications.' echo ;; Chrome|chrome) echo 'Cool!!! It's for pro users. Amazing Choice.' echo ;; Linux|linux) echo 'You might be serious about security!!' echo ;; *) echo 'Sounds interesting. I will try that.' echo ;; esac
Výkon
Spustili sme skript s tromi rôznymi vstupmi, pozrite si výstup nižšie: