Isikhokelo sokuqala kwi-BASH - Input Parameters

Siyakwamkela kwinqanaba le-2 le-Guide to Beginners kwi-BASH chungechunge ekhethekileyo kwinto yokuba yi-BASH kuphela eyabhalwa ngabaqalayo ngabaqalayo.

Abafundi beli khokelo baya kwakha ulwazi lwabo njengoko ndiyakha ulwazi lwam kwaye sinethemba ekupheleni kwayo konke esiya kuba nako ukubhala ezinye zeempendulo ezicacileyo.

Kwiveki ephelileyo ndagqiba ukudala iskripthi sakho sokuqala esichaza amagama athi "Hello World". Iquka izifundo ezifana nabahleli bombhalo, indlela yokuvula iwindow yokugcina, apho ubeka khona iempendulo zakho, indlela yokubonisa ngayo igama elithi "Sawubona hlabathi" kunye namanye amanqaku aphelileyo kubalingiswa bokuphepha ezifana neengcaphuno ("").

Le veki ndiza kubhala iiparitha zengeniso. Kukho ezinye izikhokelo ezifundisa olu hlobo lwento kodwa ndifumanisa ukuba zixhamla kwizinto ezithile eziphantsi kwaye mhlawumbi zinika ulwazi oluninzi.

Yintoni iParameter?

Kwi-"World World" yeskripthi esivela kwisifundo sokugqibela konke kwakunzima kakhulu. Iskripthi asizange senze okungakumbi.

Singaziphucula njani kwi-"Hello World" script?

Kuthiwani ngesikripthi esibonisa umntu ogijimayo? Esikhundleni sokuthi "IWorld World" iya kuthi "Sawubona Gary", "Sawubona Tim" okanye "Sawubona Dolly".

Ngaphandle kokukwazi ukwamukela iiparitha zengeniso sifuna ukubhala izikripthi ezintathu "hellogary.sh", "hellotim.sh" kunye "hellodolly.sh".

Ngokuvumela iskripthi sethu ukuba sifunde iiparitha zengeniso singasebenzisa esinye iskripthi sokubonga umntu.

Ukwenza oku kuvule iwindow yokugcina (CTRL + ALT + T) uze uhambe kwiifayile zakho zeempendulo ngokubhala ezi zilandelayo: ( malunga nomyalelo we-cd )

cd scripts

Yenza iskripthi esitsha esibizwa ngokuba sibingelelo.sh ngokuthayipha oku kulandelayo: ( malunga nomyalelo wokuthinta )

thintela i greetings.sh

Vula iskripthi kumhleli wakho oyithandayo ngokuthayipha oku kulandelayo: ( malunga nomyalelo we-nano )

nano greetme.sh

Faka umbhalo olandelayo kwi-nano:

#! / bin / bash echo "bonani $ @

Cindezela i-CTRL kunye no-O ukugcina ifayile uze emva kwe-CTRL kunye no-X ukuvala ifayile.

Ukusebenzisa iskripthi faka oku kulandelayo kumgca womyalelo ukufaka endaweni egameni lakho.

sh isingqa.sh

Ukuba ndiqhuba le script negama lam libonisa amagama athi "Sawubona Gary".

Umgca wokuqala unomgca we # # / bin / bash usetyenziselwa ukuchonga ifayile njengebhascript.

Umgca wesibini usebenzisa isitatimende se-echo ukuze uvakalise igama elithi hello kwaye ke kukho i $ $ engaziwayo. ( malunga nomyalelo we-echo )

I $ @ iyanda ukubonisa zonke iiparamitha ezifakwe kunye negama leskripthi. Ngoko ukuba uthayiphe "isibingelelo.sh tim" amagama athi "hello tim" aya kuboniswa. Ukuba uthayiphe "isibingelelo.sh tim smith" ngoko amagama athi "hello tim smith" aya kuboniswa.

Kungenzeka kube mnandi kwi-script yes greetings.sh ukuthetha nje ubabalo usebenzisa igama lokuqala. Akukho mntu uthi "hello gary newell" xa bedibana nam, bangathi "hello gary" nangona kunjalo.

Masitshintshe iskripthi ukuze isebenzise iparameter yokuqala. Vula iskripthi sombuliso kwi-nano ngokuthayipha oku kulandelayo:

nano greetme.sh

Shintsha iskripthi ukuze sifundwe ngale ndlela:

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

Gcina iskripthi ngokucinezela i-CTRL kunye ne-O uze uphume ngokucindezela i-CTRL ne-X.

Qalisa iskripthi njengoko kuboniswe ngezantsi (faka igama lam neyakho):

sh salisa.sh gary newell

Xa uqhuba le script kuya kuthi "hello gary" (okanye uthemba "hello" kunye nokuba yeyiphi igama lakho.

I-1 emva kokuba uphawu lwama-dollar lugxininise ngokuthe ngqo kumyalelo we-echo, sebenzisa iparameter yokuqala. Ukuba ubeka i-$ 1 nge $ 2 ngoko kuya kubonisa "hello newell" (okanye nayiphi na ifani yakho).

Ngokuqinisekileyo ukuba uthe wafaka i-$ 2 nge $ 3 waza wagijima iskripthi kunye nemigangatho e-2 nje umphumo wawuza kuba "Sawubona".

Kunokwenzeka ukubonisa nokusingatha inani leeparitha ezifakiwe ngokwenene kwaye emva koko ndiza kubonisa indlela yokusebenzisa inani leparameter ngenjongo yokuqinisekisa.

Ukubonisa inani leeparamitha ezifakiwe zivula i-greetme.sh script (nano greetme.sh) kwaye ulungise itekisi njengolu hlobo:

#! / bin / bash echo "ungene amagama e # #" bhala "bonani $ @

Cindezela i-CTRL kunye no-O ukugcina iskripthi kunye ne-CTRL kunye no-X ukuphuma kwi-nano.

I $ # kumgca we-2 ubonisa inani leeparamitha langena.

Ngaloo ndlela konke oku kuye kwaba yinveli kodwa ayinakuncedo. Ngubani ofuna i-script ebonisa nje "hello"?

Ukusetyenziswa okwenene kweengxelo ze-echo kukubonelela nge-verbose kunye nemveliso enentsingiselo kumsebenzisi. Ukuba unokucinga ukuba ufuna ukwenza into eyinkimbinkimbi ebandakanya inamba encinci ye-crunching kunye nefayile / ukuphathwa kwefowuni kuya kuba luncedo ukubonisa umsebenzisi okwenzekayo nganye inyathelo endleleni.

Ngokwahlukileyo, iiparitha zengeniso zenza iskripthi sakho sisebenzisana. Ngaphandle kwemigqaliselo yempembelelo oya kufuna iimpawu zeempendulo zonke ukwenza izinto ezifanayo kakhulu kodwa ngamagama ahlukeneyo.

Ngaloo nto engqondweni kukho ezinye iiparamitha zokufakelwa eziyimfuneko ukuba yinto efanelekileyo yokwazi kwaye ndiya kubandakanya bonke kwidijithi eyodwa yekhowudi.

Vula iskripthi sakho sababingelelo kwaye uyilungise ngale ndlela:

#! / bin / bash echo "Igama lefayile: $ 0" echo "I-ID yenkqubo: $$" echo "---------------------------- --- "echo" "wangena amagama e # #" bhala "nceda $ @

Cinezela i-CTRL kunye no-O ukugcina ifayile kunye ne-CTRL kunye no-X ukuze uphume.

Ngoku sebenzisa isikripthi (faka igama lakho).

sh isingqa.sh

Eli xesha le script ibonisa oku kulandelayo:

Ifayile yegama: greetme.sh Inombolo yenkqubo: 18595 ------------------------------ ungene 2 amagama hello gary newell

I $ 0 kumgca wokuqala weskripthi ubonisa igama lombhalo osebenzayo. Qaphela ukuba i dollar zero kwaye ayiyi dollar o.

I-$$ kumgca wesibini ubonisa i-id yenkqubo yeskripthi sakho esisebenza. Kutheni oku ku luncedo? Ukuba uqhuba iskripthi ngaphambili ungakukhansela ngokuchukumisa i-CTRL kunye neC. Ukuba ugijime iskripthi ngasemva kwaye uqale ukukhwela kwaye wenze into efanayo ngokuphindaphindiweyo okanye uqale ukudala umonakalo kwinkqubo yakho oya kuyidinga ukuyibulala.

Ukubulala iskripthi esisebenza kwimvelaphi udinga inkqubo yenkqubo yeskripthi. Ngaba bekungekho nto ukuba i-script inike i-id kwinkqubo njengenxalenye yesiphumo sayo. ( malunga ne-ps kunye nokubulala imiyalelo )

Ekugqibeleni phambi kokuba ndigqibe ngesi sihloko ndandifuna ukuxoxa malunga nalapho iphuma khona. Njalo ixesha i-script iqhubekile ngoku ukukhangela kwikhompyutheni.

Kuqhelekile ukuba imveliso yeskripthi ibhalelwe kwifayile yokuphuma. Ukwenza oku kusebenze iskripthi sakho ngolu hlobo:

sh salise.sh gary> greetme.log

I> isimboli kumyalelo ongentla uphuma isicatshulwa esithi "hello gary" kwifayile ebizwa ngokuthi salute.log.

Njalo xa uqhuba iskripthi kunye> isimboli ibhala ngaphezulu kwefayile efayiliweyo. Ukuba unqwenela ukuxhomekeka kwifayili faka indawo> nge >>.

Isishwankathelo

Ngoku kufuneka ukwazi ukubhala umbhalo kwiskrini uze wamukele iiparitha zengeniso.