Indlela Yokudlulisa Izimpendulo Ku-Bash-Script

Imiyalo, i-syntax nezibonelo

Ungabhala iskripthi sebhashi kangangokuba ithola izimpikiswano ezichazwe uma iskripthi sabizwa kusuka kumlayini wokulalelwayo. Le ndlela isetshenziswa uma iskripthi senza umsebenzi ohlukile ngokuya ngamanani wemingcele yokufaka (izingxabano).

Isibonelo, ungase ube neskripthi esibizwa ngokuthi "stats.sh" esenza umsebenzi othize kwifayela, njengokubala amagama alo. Uma ufuna ukukwazi ukusebenzisa leyo script emafayeleni amaningi, kungcono ukudlulisa igama lefayela njengengxabano, ukuze ukwazi ukusebenzisa iskripthi esifanayo kuwo wonke amafayela azocutshungulwa. Isibonelo, uma igama lefayela elizocutshungulwa "luhlu lokucubungula", ungangena emgqeni womyalo olandelayo:

uhlu lwadlalwayo lwe-st st.ssh

Iziphakamiso zitholakale ngaphakathi kweskripthi besebenzisa okuguquguqukayo $ 1, $ 2, $ 3, njll, lapho i-$ 1 ibhekisela ekuxabaneni kokuqala, i-$ 2 kuya kwengxabano yesibili, njalonjalo. Lokhu kuboniswa kusibonelo esilandelayo:

I-FILE1 = $ 1 wc $ FILE1

Ukuze ufundeke, nikeza okuguquguqukayo ngegama elichazayo ngenani le-argument yokuqala ($ 1), bese ushayele igama lomsebenzisi we-count ( wc ) kule variable ($ FILE1).

Uma unenombolo eguquguqukayo yezimpikiswano, ungasebenzisa ukuguquguquka kwe- "$ @", okuyingxenye yazo yonke imingcele yokufaka. Lokhu kusho ukuthi ungasebenzisa i -loop for processatively ngayinye, njengoba kuboniswe kusibonelo esilandelayo:

I-FILE1 ku- "$ @" yenza i-WC $ FILE1 eyenziwe

Nasi isibonelo sokuthi ungabiza kanjani lesi script ngeziphakamiso kusuka kumugqa womyalo:

uhlu lwadlalwayo lwama-stats.sh1 uhlu lwadlalwayo3

Uma ingxoxo inezikhala, udinga ukuyifaka ngezingcaphuno ezilodwa. Ngokwesibonelo:

uhlu lwadlalwayo luka-sh stats.sh 1 '' uhlu lokungoma 2 '' uhlu lokungoma 3 '

Ngokuvamile iskripthi sibhaliwe kangangokuthi umsebenzisi angadlulisa ngezimpikiswano kunoma iyiphi i-oda esebenzisa amafulegi. Ngendlela yamaflegi, ungaphinda wenze ezinye iziphakamiso ozikhethile.

Vumela uthi uneskripthi esithola ulwazi oluvela kwisigcawu esekelwe kwimingcele ecacisiwe, njenge "igama lomsebenzisi", "usuku", kanye "nomkhiqizo", futhi idala umbiko "esimweni" esibekiwe. Manje ufuna ukubhala iskripthi sakho ukuze udlule kulezi zimingcele uma kubizwa iskripthi. Kungase kubonakale kanje:

makereport -u-jsmith -p izincwadi -d 10-20-2011 -f pdf

I-Bash yenza lokhu kusebenze kube nomsebenzi we- "getopts". Ngesibonelo esingenhla, ungasebenzisa ama-getopts kanje:

Leli -loop esesikhashana esisebenzisa umsebenzi we-"getopts" nalokho okubizwa ngokuthi "optstring", kulokhu "u: d: p: f:", ukuze uphinde usebenzise izimpikiswano. I-loop ngenkathi ihamba nge-optstring, equkethe amafulege angasetshenziselwa ukudlulisa izingxabano, futhi inikeze inani lokuphikisana elihlinzekwe lelo bendera ku-"option" eguquguqukayo. Icala-isitatimende sabeka inani lenani elithi "okukhethwa kukho" ekuguqukisweni komhlaba wonke okungasetshenziswa ngemuva kokuthi zonke izimpikiswano zifundwa.

Amakholoni e-optstring asho ukuthi amanani adingekayo kumafulege afanayo. Esikhathini esingenhla wonke amafulegi alandelwa ikholoni: "u: d: p: f:". Lokhu kusho ukuthi wonke amafulege adinga inani. Uma, isibonelo, ama-flags "d" ne "f" awakulindelekile ukuba abe nenani, i-optstring yayiyoba "u: dp: f".

I-colon ekuqaleni kokuphuma kwe-optstring, isibonelo ": u: d: p: f:", inencazelo ehluke ngokuphelele. Ikuvumela ukuba uphathe amafulegi angamelwe optstring. Ngaleso sikhathi ukubaluleka kokuguquguquka "kokukhetha" kusethelwe ku- "?" futhi inani le- "OPTARG" lisethelwe kukhalenda elingalindelekile. I-Inthanethi ikuvumela ukuba ubonise umlayezo wephutha ofanelekile ukwazisa umsebenzisi wephutha.

Izimpikiswano ezingakaze zandulelwe ifulege zizinakwa yi-getopts. Uma amafulegi acacisiwe ku-optstring akanikezwa uma iskripthi sabizwa, akukho okwenzekayo, ngaphandle uma usebenza ngokukhethekile kuleli cala kukhodi yakho. Noma yiziphi izimpikiswano ezingasetshenziswanga ngu-getops zisengathunyelwa ngezikhathi ezijwayelekile ze $ 1, $ 2, njll.