Bash gadījuma komandu izmanto, lai veiktu pareizas darbības, salīdzinot datus, piemēram, if paziņojumu. Tas darbojas kā citu standarta programmēšanas valodu paziņojums par pārslēgšanas gadījumiem. Šī komanda sākas ar paziņojumu “gadījums” un tiek aizvērta ar paziņojumu “esac”. Lietā komandā netiek izmantots pārtraukuma paziņojums, un dubultā iekava (;;) ir nepieciešama, lai pieminētu paziņojumu (-us) jebkurai noteiktai atbilstībai. Šī komanda paplašina izteiksmi un mēģina saskaņot ar norādīto modeli, un šīs komandas izejas statusa kods būs nulle, ja netiks atrasta atbilstība. Daži mācību gadījumu piemēri ir parādīti šajā apmācībā.
1. piemērs: vienkāršs gadījuma izklāsts
Lai izveidotu izvadi, pamatojoties uz atbilstības nosacījumu, bash case komandā tiek izmantota viena nosacīta izteiksme. Izveidojiet bash failu ar nosaukumu gadījums1.sh ar šādu bash skriptu. Skripts ņems virknes vērtību un saskaņos vērtību ar katru izteiksmi. Šis skripts ģenerēs “Nav atrasts ieraksts”, ja nepastāv atbilstoša izteiksme,
gadījums1.sh
atbalss "Ierakstiet savu vārdu"
lasīt vārdu
gadījums $ nosaukums
Jāmin)
atbalss "Jūsu mīļākā krāsa ir zila" ;;
Fahmida)
atbalss "Tavs mīļākais dzēriens ir Sprite" ;;
*)
atbalss "Nav atrasts ieraksts" ;;
esac
Palaidiet skriptu.
$ bash gadījums.shIzeja:
Lai pārbaudītu izvadi, šeit fails tiek izpildīts ar derīgu un nederīgu ievadi.
2. piemērs: vairāku gadījumu izklāsts ar cauruli
Lai izpildītu dažāda veida paziņojumus, bash skriptā var izmantot vairākas gadījuma izteiksmes. Pipe (|) simbolu var izmantot, lai piešķirtu vairākas izteiksmes. Izveidojiet bash failu ar nosaukumu gadījums2.sh ar šādu skriptu. Pēc skripta palaišanas, ja ievades vērtība sakrīt ar kādu izteiksmi, tiks izdrukāta atbilstošā teksta vērtība.
gadījums2.sh
atbalss "Ievadiet savu ID numuru"
lasīt ID
gadījums $ ID
65341)
atbalss "Jūsu pozīcija ir 1." ;;
97564 | 88453)
atbalss "Jūsu pozīcija ir otrā" ;;
45087)
atbalss "Tava pozīcija ir 3." ;;
*)
atbalss "Nederīgs ID" ;;
esac
Palaidiet skriptu .
$ bash gadījums2.shIzeja:
Šis skripts darbojas arī tāpat kā iepriekšējais piemērs. Vienīgā atšķirība ir tā, ka vairākas izpausmes vērtības tiek pārbaudītas vienai izejai.
3. piemērs: Kā iziet no case / esac paziņojuma bloka
Ja komandu bash case izmanto zem bezgalīgas cilpas, izejas komanda ir jāizmanto, lai pārtrauktu cilpu. Šis piemērs parāda, kā var veikt šāda veida uzdevumus. Izveidojiet teksta failu ar nosaukumu gadījums3.sh ar šādu skriptu. Šis skripts kā ievadi ņems jebkuru skaitli no 1 līdz 3. Ja ievade ir 1, tiks pievienoti divi skaitļi, ja ievade ir 2, tiks atņemti divi skaitļi un, ja ievades skaitlis ir 3, tad divi skaitļi tiks reizināti. Izvade būs “Nederīgs ieraksts”, ja ievades numurs ir lielāks par 3 vai mazāks par 1 vai tukšs.
gadījums3.sh
#!/ bin / bash
kamēr (taisnība)
darīt
a = 8
b = 4
((x = $ a + $ b))
((y = $ a- $ b))
((z = $ a * $ b))
atbalss "1., 2. vai 3. tips"
lasīt ans
gadījums $ ans
1) atbalss "$ a un $ b summa ir $ x & exit" ;;
2) atbalss "$ a un $ b atņemšana ir $ y & exit" ;;
3) atbalss "$ a un $ b reizinājums ir $ z & exit" ;;
*) atbalss "Nederīgs ieraksts"
esac
izdarīts
Palaidiet skriptu.
$ bash gadījums3.shIzeja:
Skripts turpinās darboties, līdz tiks nospiesta ctrl + c.
4. piemērs: tukšas komandrindas argumenta vērtības pārbaude
Komandrindas argumentu mainīgo var izmantot bash gadījuma paziņojumā. Izveidojiet failu ar nosaukumu gadījums4.sh ar šādu skriptu, kas pārbaudīs otrā argumenta mainīgā vērtību.
#!/ bin / bashlieta "$ 2"
"Ubuntu")
atbalss "Otrais arguments ir 2 ASV dolāri."
;;
"CentOS")
atbalss "Otrais arguments ir 2 ASV dolāri."
;;
"")
atbalss "Otrais arguments ir tukšs."
;;
esac
Palaidiet skriptu.
$ bash gadījums4.shIzeja:
Šeit skripts pirmo reizi tiek izpildīts bez otras komandrindas argumenta vērtības, un izvade parāda “Otrais arguments ir tukšs”. Kad skripts tiek izpildīts ar otro komandrindas argumenta vērtību otro reizi, izeja netiek parādīta.
5. piemērs: vairāku lietu izklāsts, pamatojoties uz lietotāja ievadi
Izveidojiet bash failu ar nosaukumu gadījums5.sh ar šādu skriptu. Skripts kā lietotāja ievadi izmantos mēneša nosaukumu. Ja mēneša nosaukums sakrīt ar jebkura gadījuma vērtību, mainīgajam Message tiks piešķirta noteikta īsziņa. Ievades vērtībai jābūt pilna mēneša nosaukumam vai trīs rakstzīmju mēneša nosaukumam.
gadījums5.sh
#!/ bin / bashatbalss "Ievadiet mēneša nosaukumu"
lasīt mēnesi
lieta $ mēnesis
Janvāris | janvāris *)
Message = "21. februāris ir mūsu Starptautiskā mātes diena."
;;
Februāris | februāris *)
Message = "21. februāris ir mūsu Starptautiskā mātes diena."
;;
Marts | marts *)
Message = "9. marts ir pasaules nieru diena."
;;
Aprīlis | aprīlis *)
Message = "Pašreizējais mēnesis nav februāris"
;;
Maijs | maijs *)
Message = "Pašreizējais mēnesis ir februāris"
;;
Jūnijs | jūnijs *)
Message = "Pašreizējais mēnesis ir februāris"
;;
*)
Message = "Nav atrasta atbilstoša informācija"
;;
esac
echo $ Ziņojums
Palaidiet skriptu.
$ bash gadījums.shIzeja:
Ievades vērtībai “marts” vai “marts” parādīsies šāda izeja.
6. piemērs: Pārbaudiet mainīgo bash gadījuma paziņojumā
Jebkuru virknes vērtību var izdrukāt, pārbaudot komandrindas argumenta mainīgā vērtību. Izveidojiet teksta failu ar nosaukumu gadījums6.sh ar šādu skriptu. Šajā piemērā tiek pārbaudīta pirmā argumenta mainīgā vērtība un, ja vērtība ir tukša, tiks izdrukāta virkne “Man patīk bash programmēšana”.
gadījums6.sh
#!/ bin / bashgadījums $ 1
("") atbalss "Man patīk bash programmēšana";
esac
Palaidiet skriptu.
$ bash gadījums.shIzeja:
Šis skripts tiek izpildīts ar un bez pirmajiem argumentiem. Ja neizdosies neviens komandrindas argumenta mainīgais, izeja nebūs.
Secinājums
Šajā rakstā ir parādīti dažādi bash gadījuma komandas izmantošanas veidi. Ja lasītāji pareizi praktizē šos piemērus, viņiem būs vieglāk atrisināt daudzas bash programmēšanas problēmas.