Naredba Bash case koristi se za poduzimanje ispravnih radnji uspoređivanjem podataka poput if naredbe. Radi kao naredba preklopnog slučaja drugih standardnih programskih jezika. Ova naredba započinje izrazom 'case' i zatvara se izrazom 'esac'. U naredbi case ne koristi se naredba break i dvostruka zagrada (;;) potrebna je za spominjanje izjave za bilo koje određeno podudaranje. Ova naredba proširuje izraz i pokušava se podudarati s danim uzorkom, a status statusa izlaza ove naredbe bit će nula ako neće biti pronađeno podudaranje. Neki su uobičajeni primjeri navoda slučaja prikazani u ovom vodiču.
Primjer-1: jednostavna izjava slučaja
U naredbi bash case koristi se jedan uvjetni izraz za generiranje rezultata na temelju podudarnog uvjeta. Stvorite bash datoteku s imenom slučaj1.sh sa sljedećim bash skriptom. Skripta će uzeti vrijednost niza i podudarati vrijednost sa svakim izrazom. Sljedeća skripta generirat će "Nije pronađen nijedan unos" ako ne postoji odgovarajući izraz,
slučaj1.sh
echo "Upiši svoje ime"
pročitajte ime
slučaj $ ime u
Yesmin)
echo "Vaša omiljena boja je plava" ;;
Fahmida)
echo "Vaše omiljeno piće je Sprite" ;;
*)
echo "Nije pronađen nijedan unos" ;;
esac
Pokrenite skriptu.
$ bash slučaj1.shIzlaz:
Datoteka se ovdje izvršava s važećim i nevaljanim ulazom za testiranje rezultata.
Primjer-2: višestruka izjava slučaja s cijevi
U bash skripti mogu se primijeniti višestruki izrazi velikih i malih slova za izvršavanje različitih vrsta izraza. Simbol cijevi (|) može se koristiti za dodjeljivanje višestrukih izraza. Stvorite bash datoteku s imenom slučaj2.sh sa sljedećom skriptom. Nakon pokretanja skripte, ako se ulazna vrijednost podudara s bilo kojim izrazom, ispisat će se odgovarajuća tekstualna vrijednost.
slučaj2.sh
echo "Upišite svoj ID broj"
pročitajte ID
slučaj $ ID u
65341)
odjek "Vaša je pozicija 1." ;;
97564 | 88453)
odjek "Vaša je pozicija 2." ;;
45087)
odjek "Vaša je pozicija 3." ;;
*)
echo "Nevažeći ID" ;;
esac
Pokrenite skriptu .
$ bash slučaj2.shIzlaz:
Ova skripta također radi kao i prethodni primjer. Jedina je razlika u tome što se vrijednosti više izraza ispituju za jedan izlaz.
Primjer-3: Kako izaći iz bloka izvoda case / esac
Kada se naredba bash case koristi pod beskonačnom petljom, naredba exit potrebna je za zaustavljanje petlje. Ovaj primjer pokazuje kako se mogu izvršiti ove vrste zadataka. Stvorite tekstualnu datoteku s imenom slučaj3.sh sa sljedećom skriptom. Ova skripta za ulaz uzima bilo koji broj od 1 do 3. Ako je ulaz 1, tada će se dodati dva broja, ako je ulaz 2, tada će se oduzeti dva broja, a ako je ulazni broj 3, tada će se dva broja pomnožiti. Izlaz će biti "Neispravan unos" ako je ulazni broj veći od 3 ili manji od 1 ili je prazan.
slučaj3.sh
#!/ bin / bash
dok (istina)
čini
a = 8
b = 4
((x = $ a + $ b))
((y = $ a- $ b))
((z = $ a * $ b))
odjek "Tip 1 ili 2 ili 3"
čitati ans
slučaj $ ans u
1) echo "Zbroj $ a i $ b je $ x & exit" ;;
2) odjek "Oduzimanje $ a i $ b je $ y & exit" ;;
3) odjek "Množenje $ a i $ b je $ z & exit" ;;
*) odjek "Neispravan unos"
esac
gotovo
Pokrenite skriptu.
$ bash slučaj3.shIzlaz:
Skripta će se nastaviti izvršavati sve dok se ne pritisne ctrl + c.
Primjer-4: Provjera prazne vrijednosti argumenta naredbenog retka
Varijabla argumenta naredbenog retka može se koristiti u naredbi slučaja bash. Stvorite datoteku s imenom slučaj4.sh sa sljedećom skriptom koja će provjeriti vrijednost druge varijable argumenta.
#!/ bin / bashslučaj "2 dolara" u
"Ubuntu")
echo "Drugi argument je 2 USD."
;;
"CentOS")
echo "Drugi argument je 2 USD."
;;
"")
echo "Drugi je argument prazan."
;;
esac
Pokrenite skriptu.
$ bash slučaj4.shIzlaz:
Ovdje se skripta prvi put izvršava bez bilo koje vrijednosti argumenta naredbenog retka, a izlaz prikazuje "Drugi je argument prazan". Kada se skripta po drugi put izvrši s vrijednošću argumenta drugog naredbenog retka, tada se ne prikazuje izlaz.
Primjer-5: višestruki iskaz na temelju korisničkog unosa
Stvorite bash datoteku s imenom slučaj5.sh sa sljedećom skriptom. Skripta će uzimati naziv mjeseca kao korisnički unos. Ako se naziv mjeseca podudara s bilo kojom vrijednošću slučaja, tada će se određena tekstna poruka dodijeliti varijabli Poruka. Ulazna vrijednost mora biti puno ime mjeseca ili naziv mjeseca s tri znaka.
slučaj5.sh
#!/ bin / bashecho "Upiši naziv mjeseca"
pročitati mjesec
slučaj $ mjesec u
Siječanj | siječanj *)
Poruka = "21. veljače je naš Međunarodni majčin dan."
;;
Veljača | veljača *)
Poruka = "21. veljače je naš Međunarodni majčin dan."
;;
Ožujak | ožujak *)
Poruka = "9. ožujka je svjetski dan bubrega."
;;
Travanj | travanj *)
Poruka = "Trenutni mjesec nije veljača"
;;
Svibanj | svibanj *)
Poruka = "Trenutni mjesec je veljača"
;;
Lipanj | lipanj *)
Poruka = "Trenutni mjesec je veljača"
;;
*)
Message = "Nisu pronađene odgovarajuće informacije"
;;
esac
echo $ Poruka
Pokrenite skriptu.
$ bash slučaj5.shIzlaz:
Sljedeći će se izlaz pojaviti za ulaznu vrijednost, 'ožujak' ili 'ožujak'.
Primjer 6: Provjerite varijablu u naredbi slučaja bash
Bilo koja vrijednost niza može se ispisati provjerom vrijednosti varijable argumenta naredbenog retka. Stvorite tekstualnu datoteku s imenom slučaj6.sh sa sljedećom skriptom. U ovom se primjeru provjerava vrijednost prve varijable argumenta i ako je vrijednost prazna, ispisat će se niz "Sviđa mi se bash programiranje".
slučaj6.sh
#!/ bin / bashslučaj $ 1 in
("") echo "Volim bash programiranje";
esac
Pokrenite skriptu.
$ bash slučaj6.shIzlaz:
Ova se skripta izvršava sa i bez prvih argumenata. Neće biti rezultata ako ne prođe varijabla argumenta naredbenog retka.
Zaključak
U ovom su članku prikazane različite upotrebe naredbe bash case. Ako čitatelji pravilno primjenjuju ove primjere, bit će im lakše riješiti mnoge probleme bash programiranja.