V tej temi bomo razpravljali o osnovah stavkov case in o tem, kako jih uporabiti v skriptih Bash.
Stavek primera Bash je najpreprostejša oblika IF-THEN-ELSE s številnimi elementi ELIF. Uporaba izjave case naredi naš skript bash bolj berljiv in lažji za vzdrževanje. Ti se običajno uporabljajo za poenostavitev zapletenih pogojev, ki imajo več različnih izbir.
Stavek primera Bash sledi podobni logiki kot stavek Javascript ali C switch. Obstaja majhna razlika, kot sledi:
- Stavek primera Bash sprejme vrednost enkrat in to vrednost večkrat preizkusi. Neha iskati vzorec, ko ga najde in izvede z njim povezan stavek, kar je skoraj nasprotno v primeru stavka C switch.
Sintaksa izjave o primeru
Sintaksa stavka bash case je podana spodaj:
case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac
Obstaja nekaj ključnih točk stavkov bash case:
- Vsak stavek case v bash se začne s ključno besedo 'case', ki ji sledita izraz case in ključna beseda 'in'. Stavek primera se zaključi s ključno besedo 'esac'.
- Uporabimo lahko več vzorcev, ločenih z | operater. Operator ) označuje konec seznama vzorcev.
- Vzorec, ki vsebuje izjave, se imenuje klavzula in mora biti končan z dvojnim podpičjem (;;).
- Simbol zvezdice (*) se uporablja kot končni vzorec za določitev privzete velikosti črk. Uporablja se kot privzeti primer, ko se uporablja kot zadnji primer.
Kako deluje
Prvič, stavek case razširi izraz in se poskuša ujemati z vsakim od vključenih vzorcev. Ko najde ujemanje, se izvedejo vsi povezani stavki do dvojnega podpičja (;;). Po prvem ujemanju se primer konča z izhodnim statusom zadnjega izvedenega stavka.
Če ni ujemajočega se vzorca, je izhodni status primera nič. V nasprotnem primeru je status vrnitve izhodni status izvedenih stavkov.
Če je uporabljen privzeti vzorec zvezdice, se bo izvedel, če ne bo ujemajočega se vzorca.
Poskusimo razumeti ta mehanizem s pomočjo nekaj primerov:
Primer 1
V tem primeru smo definirali preprost scenarij za prikaz uporabe izjave 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
Izhod
Primer 2
V tem primeru smo definirali kombiniran scenarij, kjer obstaja tudi privzeti primer, ko ni najden noben prejšnji ujemajoči se primer.
vračanje nizov v javi
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
Izhod
Skript smo zagnali s tremi različnimi vhodi, spodaj si oglejte izhod: