U ovoj temi raspravljat ćemo o osnovama case iskaza i kako ih koristiti u Bash skriptama.
Bash case iskaz je najjednostavniji oblik IF-THEN-ELSE s mnogo ELIF elemenata. Korištenje naredbe case čini našu bash skriptu čitljivijom i lakšom za održavanje. Oni se općenito primjenjuju za pojednostavljenje složenih uvjeta koji imaju više različitih izbora.
Bash case naredba slijedi sličnu logiku kao Javascript ili C switch naredba. Postoji mala razlika, kako slijedi:
- Bash case iskaz uzima vrijednost jednom i testira tu vrijednost više puta. Prestaje tražiti obrazac nakon što ga pronađe i izvrši naredbu povezanu s njim, što je gotovo suprotno u slučaju naredbe C switch.
Sintaksa iskaza slučaja
Sintaksa naredbe bash case data je u nastavku:
case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac
Postoje neke ključne točke bash case izjava:
- Svaka naredba case u bashu počinje ključnom riječi 'case', nakon koje slijedi izraz case i ključna riječ 'in'. Iskaz slučaja se zatvara ključnom riječi 'esac'.
- Možemo primijeniti više uzoraka odvojenih znakom | operater. Operator ) označava završetak popisa uzoraka.
- Uzorak koji sadrži iskaze naziva se klauzula i mora se završavati dvostrukom točkom-zarezom (;;).
- Simbol zvjezdice (*) koristi se kao završni obrazac za definiranje zadanog slova. Koristi se kao zadani slučaj kada se koristi kao zadnji slučaj.
Kako radi
Prije svega, iskaz slučaja proširuje izraz i pokušava se uskladiti sa svakim od uključenih uzoraka. Kada pronađe podudaranje, sve povezane naredbe se izvršavaju do dvostruke točke i zareza (;;). Nakon prvog podudaranja, slučaj završava s izlaznim statusom posljednje izvršene naredbe.
Ako nema odgovarajućeg uzorka, izlazni status slučaja je nula. U suprotnom, povratni status je izlazni status izvršenih naredbi.
Ako se koristi zadani uzorak zvjezdice, on će se izvršiti u slučaju da nema odgovarajućeg uzorka.
Pokušajmo razumjeti ovaj mehanizam uz pomoć nekoliko primjera:
Primjer 1
U ovom smo primjeru definirali jednostavan scenarij za demonstraciju upotrebe naredbe case.
Bash skripta
#!/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
Izlaz
Primjer 2
U ovom smo primjeru definirali kombinirani scenarij gdje također postoji zadani slučaj kada nije pronađen prethodni podudarni slučaj.
kali linux terminal
Bash skripta
#!/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
Izlaz
Pokrenuli smo skriptu s tri različita ulaza, pogledajte izlaz u nastavku: