Tataiso ea ba qalang ho BASH - Input Parameters

Re amoheloa karolong ea bobeli ea Tataiso ea Boqapi ho lihlooho tsa BASH tse ikhethang ka hore ke eona feela thuto ea BASH e ngotsoeng ke moqali oa ba qalang.

Babali ba tataiso ena ba tla haha ​​tsebo ea bona ha ke ntse ke haha ​​tsebo ea ka 'me ka tšepo qetellong ea tsohle re tla tseba ho ngola mangolo a bohlale a bohlale.

Bekeng e fetileng ke koahetse ho theha lengolo la hau la pele le bontšang mantsoe "Lefatše la Lumela". E akaretsa lihlooho tse kang bahlophisi ba melaetsa, mokhoa oa ho bula fensetere ea fensetere, moo u ka kenyang mangolo a hau, kamoo u ka bonts'a mantsoe a reng "Lefatše la Lumela" le lintlha tse ling tse ntle ka ho fetisisa ho batho ba balehang ba kang litemana ("").

Beke ena ke ea ho koahela meeli ea boipheliso. Ho na le lihlopha tse ling tse rutang mofuta ona empa ke fumana hore li qhomela ka lintho tse ling tse tlaase 'me mohlomong li fana ka boitsebiso bo bongata haholo.

Parameter ke eng?

Ka lengolo la "Lefatše la Bonna" ho tsoa thupelong ea ho qetela e ne e le e tsitsitseng haholo. Script ha e hlile e sa etse letho haholo.

Re ka ntlafatsa joang ka "Script World" script?

Ho thoe'ng ka script e lumellang motho ea e mathang? Ho e-na le ho re "World Hello" e tla re "Hello Gary", "Hello Tim" kapa "Hello Dolly".

Ntle le bokhoni ba ho amohela mekhahlelo ea ho kenya letsoho re tla lokela ho ngola mangolo a mararo "hellogary.sh", "hellotim.sh" le "hellodolly.sh".

Ka ho lumella script ea rona hore e bale litekanyo tsa kenyelletso re ka sebelisa mongolo o le mong ho lumelisa mang kapa mang.

Ho etsa sena bulela fensetere ea liphallelo (CTRL + ALT + T) 'me u tsamaee ho folda ea hau ea litlhaku ka ho ngola tse latelang: ( mabapi le taelo ea cd )

cd scripts

Etsa script e ncha e bitsoang salom.sh ka ho ngola lintlha tse latelang: ( mabapi le taelo ea touch )

ikoahela salumo.sh

Bula script ho mohlophisi oa hau eo ue ratang ka ho thathamisa tse latelang: ( ka taelo ea nano )

nano greetme.sh

Kenya mongolo o latelang ka nano:

#! / bin / bash echo "hello $ @"

Tobetsa CTRL le O ho boloka fono mme joale CTRL le X ho koala faele.

Ho tsamaisa script kenngoa tse latelang ka mola oa taelo ho nkela lebitso la hau.

sh hello.sh

Haeba ke tsamaisa script ka lebitso la ka e bonts'a mantsoe "Hello Gary".

Mola oa pele o na le #! / Bin / bash line e sebelisetsoang ho khetholla faele e le sesepa sa bash.

Mokha oa bobeli o sebelisa polelo ea echo ho pheta lentsoe hello ebe joale ho na le $ e makatsang @ notation. ( ka taelo ea echo )

The $ @ e eketseha ho bontsa parameter e 'ngoe le e' ngoe e kentseng hammoho le lebitso la script. Kahoo haeba u thapeletse "keliso ea sal.sh tim" mantsoe "hello tim" a ne a tla bonahala. Haeba u thapeletse "lumeliso.sh tim smith" joale mantsoe "hello tim smith" a ne a tla bonahala.

E ka 'na ea e-ba monate bakeng sa mongolo oa salumo.sh hore feela u bolelle hello u sebelisa lebitso la pele feela. Ha ho motho ea reng "hello gary newell" ha ba kopana le 'na, ba ka' na ba re "hello gary" leha ho le joalo.

A re fetole script e le hore feela e sebelise parameter ea pele. Bulela sesebelisoa sa salumo.sh ka nano ka ho thathamisa se latelang:

nano greetme.sh

Fetola script e le hore e bale ka mokhoa o latelang:

#! / bin / bash echo "hello $ 1"

Boloka script ka ho hatisa CTRL le O ebe o tsoa ka ho hatella CTRL le X.

Sebelisa script e bontšitsoeng ka tlaase (nka lebitso la ka le hau):

sh hello.sh gary hello

Ha u tsamaisa script e tla re feela "hello gary" (kapa ka tšepo "hello" le eng kapa eng eo lebitso la hao le leng.

Ea 1 ka mor'a letšoao la $ e le hantle e re ho taelo ea echo, sebelisa parameter ea pele. Haeba u nkela $ 1 sebaka ka $ 2 joale e tla bontša "hello newell" (kapa eng kapa eng eo lebitso la hau le leng ho eona).

Ka tšohanyetso haeba u nkile sebaka sa $ 2 ka $ 3 'me u tsamaisa script ka mekhahlelo e 2 feela phallo e tla ba "Hello".

Hoa khoneha ho bonts'a le ho sebetsana le palo ea meeli eo e hlileng e kenang le hamorao lithuto ke tla be ke ntse ke bontša hore na nka sebelisa palo ea parameter bakeng sa merero ea ho netefatsa.

Ho bonts'a palo ea mekhahlelo e keneng e bulehileng salumo ea salumo.sh (nano greetme.sh) le ho fetola temana ka tsela e latelang:

#! / bin / bash echo "o kentse $ # lebitso" echo "hello $ @"

Tlanya CTRL le O ho boloka script le CTRL le X ho tsoa nano.

Chelete ea # # ho line ea 2 e bonts'a palo ea meeli e kenngoeng.

Ho fihlela joale tsohle tsena e bile buka empa e se ea bohlokoa haholo. Ke mang ea hlokang lengolo le bontšang "hello"?

Tšebeliso ea sebele ea lipolelo tsa echo ke ho fana ka sebopeho se nang le moelelo ho mo sebelisang. Haeba u ka inahanela hore u batla ho etsa ntho e rarahaneng e kenyelletsoang palo e tebileng ea litekanyetso le feshene / foldareng e ka ba molemo ho bonts'a motho hore na ho etsahala'ng ka mohato o mong le o mong oa tsela.

Ka lehlakoreng le leng, mekhahlelo ea ho kenya letsoho e etsa hore script e kopane. Ntle le mekhahlelo ea ho kenya letsoho u ka hloka mangolo a mangata a etsang lintho tse tšoanang haholo empa o na le mabitso a sa tšoaneng.

Ho na le sena sohle se ka kelellong ho na le lintlha tse ling tsa bohlokoa tsa ho kenya letsoho hore ke khopolo e ntle ho tseba 'me ke tla e kenyelletsa kaofela ka mokhoa o le mong oa snippet.

Bulela script ea salumo ea salumo ea hau 'me ue fetole ka tsela e latelang:

#! / bin / bash echo "Filename: $ 0" echo "Tshebetso ya ID: $$" echo "---------------------------- --- "echo" o kentse $ # mabitso "echo" hello $ @ "

Tobetsa CTRL le O ho boloka fono le CTRL le X ho tsoa.

Joale Sebelisa script (nka sebaka ka lebitso la hau).

sh hello.sh

Lekhetlong lena script e bontša tse latelang:

Filename: greetme.sh Process ID: 18595 ------------------------------ u kentse lebitso la 2 hello gary newell

Lichelete tsa $ 0 ka lehlakoreng la pele la script li bontša lebitso la script eo ue sebelisang. Hlokomela hore ke dollar zero mme eseng dollar o.

The $$ ka lehlakoreng la bobeli e bonts'a sebopeho sa ts'ebetso ea script eo u e sebetsang. Ke hobane'ng ha see se le molemo? Haeba u na le script pele-pele u ka e hlakola ka ho hatella CTRL le C. Haeba u ne u matha script ka morao 'me o qalile ho looping le ho etsa ntho e ts'oanang le nako kapa ho qala ho baka tšenyo ea tsamaiso ea hau eo u tla e hloka ho e bolaea.

Ho bolaea script e mathang ka morao o hloka id ea mokhoa oa script. Na e ne e ke ke ea e-ba hantle haeba script e fana ka lintlha tsa mokhoa oa karolo ea karolo ea eona. ( mabapi le ps le ho bolaea litaelo )

Qetellong pele ke qeta ka sehlooho sena ke ne ke batla ho buisana ka hore na palo e tsoa hokae. Nako le nako ha script e ntse e sebetsa ho fihlela joale sehlahisoa se bontšitsoe skrineng.

Ho tloaelehile hore tlhahiso ea script e ngoloe ho file e hlahisoang. Ho etsa sena tsamaisa script ea hau ka tsela e latelang:

sh hello.sh gary> hello.log

The> letšoao ho taelo e ka holimo e fana ka mantsoe "hello gary" ho faele e bitsoang greetme.log.

Nako le nako ha u matha script ka> letšoao le ngoloa ka hare ho lintlha tsa faele e hlahisoang. Haeba o ka rata ho fetisetsa faele sebaka sa sebaka sa> ka >>.

Kakaretso

Hona joale o tlameha ho ngola mongolo ho skrine ebe o amohela litekanyetso tsa ho kenya.