Bashi juhtumi käsku kasutatakse nõuetekohaste toimingute tegemiseks, võrreldes selliseid andmeid nagu if-lause. See töötab nagu teiste standardsete programmeerimiskeelte vahetamise juhtum. See käsk algab lausega 'case' ja sulgeb lause 'esac'. Case-i käsus ei kasutata ühtegi katkestuslauset ja kahekordse sulgudes (;;) on vaja lausete (de) mainimiseks mis tahes konkreetse sobitamise korral. See käsk laiendab avaldist ja püüab sobitada antud mustriga ning selle käsu väljumisolekukood on null, kui vastet ei leita. Selles õpetuses on toodud mõned juhtumilausete levinumad näited.
Näide 1: lihtne juhtumi avaldus
Üht tinglikku avaldist kasutatakse bashi juhtumi käsus väljundi genereerimiseks sobitamise tingimuse põhjal. Looge bash-fail nimega juhtum1.sh järgmise bashi skriptiga. Skript võtab stringi väärtuse ja sobitab väärtuse iga avaldisega. Kui ühtivat avaldist pole, genereerib järgmine skript „Kirjet ei leitud”,
juhtum1.sh
kaja "Sisestage oma nimi"
loe nime
juhtum $ nimi
Jahmin)
kaja "Teie lemmikvärv on sinine" ;;
Fahmida)
kaja "Teie lemmikjook on Sprite" ;;
*)
kaja "Sissekannet ei leitud" ;;
esac
Käivitage skript.
$ bashi juhtum.shVäljund:
Väljundi testimiseks käivitatakse fail kehtiva ja vale sisendiga.
Näide 2: mitu juhtumit koos toruga
Erinevat tüüpi lausete käivitamiseks saab bashi skriptis rakendada mitut juhtumi avaldist. Toru (|) sümbolit saab kasutada mitme avaldise määramiseks. Looge bash-fail nimega juhtum2.sh järgmise skriptiga. Kui skripti käivitamine sobib mõne avaldisega, siis prinditakse vastav tekstiväärtus.
juhtum2.sh
kaja "Sisestage oma ID-number"
loe ID-d
juhtum $ ID sisse
65341)
kaja "Teie positsioon on 1." ;;
97564 | 88453)
kaja "Teie positsioon on 2." ;;
45087)
kaja "Teie positsioon on kolmas" ;;
*)
kaja "Vale ID" ;;
esac
Käivitage skript .
$ bashi juhtum2.shVäljund:
See skript töötab ka nagu eelmine näide. Ainus erinevus on see, et mitu väljundväärtust testitakse ühe väljundi jaoks.
Näide 3: Kuidas juhtumi / esac-lause plokist väljuda
Kui käsku bash case kasutatakse lõpmatu silmuse all, tuleb loopi lõpetamiseks kasutada käsku exit. See näide näitab, kuidas seda tüüpi ülesandeid saab teha. Looge nimega tekstifail juhtum3.sh järgmise skriptiga. Selle skripti jaoks on sisendiks ükskõik milline arv 1–3. Kui sisend on 1, lisatakse kaks numbrit, kui sisend on 2, lahutatakse kaks numbrit ja kui sisendi number on 3, korrutatakse kaks numbrit. Väljundiks on vale sisestus, kui sisendi number on üle 3 või väiksem kui 1 või tühi.
juhtum3.sh
#!/ bin / bash
samas (tõsi)
tegema
a = 8
b = 4
((x = $ a + $ b))
((y = $ a- $ b))
((z = $ a * $ b))
kaja "tüüp 1, 2 või 3"
loe ans
juhtum $ ans sisse
1) kaja "$ a ja $ b summa on $ x & exit" ;;
2) kaja "$ a ja $ b lahutamine on $ y & exit" ;;
3) kaja "$ a ja $ b korrutamine on $ z & exit" ;;
*) kaja "Vale sisestus"
esac
tehtud
Käivitage skript.
$ bashi juhtum3.shVäljund:
Skripti täitmine jätkub seni, kuni vajutatakse klahve Ctrl + c.
Näide 4: tühja käsurea argumendi väärtuse kontrollimine
Käsurea argumentide muutujat saab kasutada bashi juhtumi avalduses. Looge fail nimega juhtum4.sh järgmise skriptiga, mis kontrollib teise argumendi muutuja väärtust.
#!/ bin / bashjuhtum "$ 2"
"Ubuntu")
kaja "Teine argument on 2 dollarit."
;;
"CentOS")
kaja "Teine argument on 2 dollarit."
;;
"")
kaja "Teine argument on tühi."
;;
esac
Käivitage skript.
$ bashi juhtum4.shVäljund:
Siin käivitatakse skript esimest korda ilma teise käsurea argumendi väärtuseta ja väljundis on kiri "Teine argument on tühi". Kui skript käivitatakse teise käsurea argumendi väärtusega teist korda, siis väljundit ei kuvata.
Näide 5: kasutaja sisendil põhinev mitu juhtumit
Looge bash-fail nimega juhtum5.sh järgmise skriptiga. Skript võtab kasutaja sisendiks kuu nime. Kui kuu nimi sobib mis tahes juhtumi väärtusega, määratakse muutujale Sõnum konkreetne tekstsõnum. Sisendväärtus peab olema kogu kuu nimi või kolme tähemärgiga kuu nimi.
juhtum5.sh
#!/ bin / bashkaja "Sisestage kuu nimi"
loetud kuu
juhtum $ kuu aastal
Jaanuar | jaanuar *)
Sõnum = "21. veebruar on meie rahvusvaheline emadepäev."
;;
Veebruar | veebruar *)
Sõnum = "21. veebruar on meie rahvusvaheline emadepäev."
;;
Märts | märts *)
Sõnum = "9. märts on ülemaailmne neerupäev."
;;
Aprill | aprill *)
Message = "Praegune kuu pole veebruar"
;;
Mai | mai *)
Message = "Praegune kuu on veebruar"
;;
Juuni | juuni *)
Message = "Praegune kuu on veebruar"
;;
*)
Message = "Sobivat teavet ei leitud"
;;
esac
echo $ Sõnum
Käivitage skript.
$ bashi juhtum5.shVäljund:
Sisendväärtuse jaoks kuvatakse järgmine väljund: märts või märts.
Näide 6: kontrollige muutujat bashi juhtumi avalduses
Mis tahes stringi väärtust saab printida, kontrollides käsurea argumendi muutuja väärtust. Looge nimega tekstifail juhtum6.sh järgmise skriptiga. Selles näites kontrollitakse esimese argumendi muutuja väärtust ja kui väärtus on tühi, prinditakse string: "Mulle meeldib programmeerimine bash".
juhtum6.sh
#!/ bin / bashjuhtum $ 1 sisse
("") kaja "mulle meeldib bashi programmeerimine";
esac
Käivitage skript.
$ bashi juhtum.shVäljund:
See skript käivitatakse ilma esimeste argumentideta ja ilma. Kui ükski käsurea argumendi muutuja ei liigu, väljundit pole.
Järeldus
Selles artiklis on näidatud bashi juhtumi erinevad kasutusalad. Kui lugejad neid näiteid korralikult harjutavad, on neil lihtsam lahendada paljusid bashi programmeerimisprobleeme.