Hastapeneko gida BASH-era - Sarrera-parametroak

Ongi etorri Hastapeneko Gidaren 2. zatia. BASH serieari dagokionez, hau da bakarra, hasiberrientzat idatzitako BASH tutorial bakarra da.

Gidaliburu honen irakurgailuak ezagutza sortuko dute ezagutza eraikitzen dudan heinean, eta, zorionez, gidoi nahiko garbi batzuk idazteko gai izango gara.

Azken astean, "Kaixo mundua" hitzak soilik agertuko zaizkizun lehenengo script sortzailea izan nuen. Testu editoreak bezalako gaiak estaltzen ditu, terminaleko leiho bat nola ireki, zure gidoiak nola jarri, "Kaixo mundua" eta "ihes" karaktere batzuk bezalako puntu finkoenak "" nola erakutsi ("").

Aste honetan sarrera-parametroak estaltzen ari naiz. Badira beste gauza batzuei ematen dizkieten beste gidak, baina nahiko maila gutxirekin joaten dira eta agian gehiegi ematen dut.

Zer da Parametroa?

"Azkeneko tutorial" "Hello World" script-ean oso estatikoa zen. Gidoiak ez zuen ezer egin.

Nola hobetu dezakegu "Hello World" scriptean?

Zer egiten du exekutatzen ari denari ala ez duen gidoi bati buruz? "Kaixo mundua" esan beharrean "Hello Gary", "Hello Tim" edo "Hello Dolly" esaten zaie.

Sarrera-parametroak onartzeko gaitasunik gabe, "hellogary.sh", "hellotim.sh" eta "hellodolly.sh" hiru eskuz idatzi beharko genituzke.

Gure gidoiak sarrera-parametroak irakurtzeko aukera ematen digu gidoi bat erabili ahal izateko edonor agurtzeko.

Horretarako, terminaleko leiho bat irekitzen du (CTRL + ALT + T) eta joan scriptak karpeta honetara idatziz: ( cd komandoari buruz )

cd scriptak

Greetme.sh izeneko script berri bat sortu ondoko hau idatziz: ( ukitu komandoari buruz )

ukitu greetme.sh

Ireki script-a zure editore gogokoena honela idazten baduzu: ( nano komandoari buruz )

nano greetme.sh

Sartu testu hau nano barruan:

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

Sakatu CTRL eta O fitxategia gordetzeko, eta ondoren CTRL eta X fitxategia ixten.

Script-a exekutatzeko sartu komando-lerroan zure izenarekin ordez.

sh greetme.sh

Nire izenaren gidoia exekutatzen badut, "Hello Gary" hitzak erakutsiko ditu.

Lehenengo lerroa #! / Bin / bash lerroa da, fitxategia bash script gisa identifikatzeko erabiltzen dena.

Bigarren lerroak oihartzun adierazpena erabiltzen du hitzen oihartzuna entzuteko eta $ @ notazio arraroa da. ( echo komandoari buruz )

$ @ -k idatzitako script-ekin batera sartu den parametro bakoitza bistaratzeko expands. Beraz "sh greetme.sh tim" idazten baduzu, "hello tim" hitzak agertuko lirateke. Idatzi baduzu "greetme.sh tim smith" ondoren, "hello tim smith" hitzak agertuko dira.

Greetme.sh scriptarengatik gustatuko litzaidake kaixo izena besterik ez erabiliz. Inork ez daki "hello gary newell" esaten dutenean, "hello gary" esan dezakete.

Aldatu script-a, beraz, lehen parametroa soilik erabiltzen du. Ireki greetme.sh script-a nanoan honako hau idatziz:

nano greetme.sh

Aldatu gidoia honela irakurtzen duen moduan:

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

Gorde script-a CTRL eta O sakatzean eta irten CTRL eta X. sakatuz.

Exekutatu script-a azpitik dagoen bezala (ordezkatu nire izena zurea):

sh greetme.sh gary newell

Script-a exekutatzen duzunean, "hello gary" (edo zorionez "kaixo" esan nahi du) eta zure izena edozein dela ere.

1 $ $ ikurra ondoren, funtsean, oihartzun komandoa esaten dio, erabili lehen parametroa. $ 1 $ 2-rekin ordezkatzen baduzu, "hello newell" (edo zure abizena edozein dela ere) erakutsiko luke.

Bide batez, $ 2 $ 3a ordezkatu baduzu eta script-a exekutatu besterik ez duzu 2 parametro, irteera "Kaixo" izango litzateke.

Baliteke benetan sartutako parametro kopurua erakutsi eta kudeatzea eta geroago tutoretzetan balioen helburuetarako parametroen zenbaketa erabiltzea erakutsiko dut.

Greetme.sh script (nano greetme.sh) irekita sartzen diren parametro kopurua bistaratzeko eta testua honela aldatzen du:

#! / bin / bash echo "sartu duzu $ # izen" echo "kaixo $ @"

Sakatu KTRL eta O script eta CTRL eta X nano irteteko.

2. $ lerroan $ # lerroko parametro kopurua bistaratzen da.

Orain arte, hau guztia eleberria izan da baina ez da oso erabilgarria. Nork behar du "kaixo" bistaratzen duen script bat behar du?

Oihartzunaren adierazpenetarako benetako erabilera irteera ulergarria ematen dio erabiltzaileari. Zenbait zenbaki konplexutara eta fitxategi / karpeten manipulazioarekin loturiko zerbait konplexua egin nahi baduzu, lagungarri izango litzateke erabiltzaileari bidea pauso bakoitza gertatzen ari dela.

Aitzitik, sarrerako parametroak zure script interaktiboa da. Sarrera parametro gabe, hainbat script-ak beharko lukete gauza oso antzekoak egiten dituztenei, baina apur bat desberdina.

Hori guztia kontuan izanik ideia ona da jakitea, eta horiek guztiak kode kode bakarrean sartzea izango da.

Ireki greetme.sh script-a eta aldatu honela:

#! / bin / bash echo "Filename: $ 0" echo "Prozesuaren IDa: $$" echo "---------------------------- --- "echo" sartu duzu $ # izen "echo" kaixo $ @ "

Sakatu KTRL eta O fitxategia eta CTRL eta X ateratzeko.

Orain exekutatu script (ordez zure izenarekin).

sh greetme.sh

Oraingoan scriptak honako hau bistaratzen du:

Filename: greetme.sh Prozesuaren IDa: 18595 ------------------------------ 2 izen sartu dituzu hello gary newell

$ 0 scriptaren lehenengo lerroan exekutatzen ari zaren scriptaren izena bistaratzen du. Kontuan izan dolarraren zeroa dela eta ez dela dolarra.

Bigarren lerroan $$ek zure exekutatzen ari den script prozesuaren id-a erakusten du. Zergatik da erabilgarria? Aurreko planoan script bat exekutatzen ari bazara, bertan behera utzi dezakezu CTRL eta C. sakatuz. Atzeko planoan script exekutatzen baduzu eta begizta eta gauza bera egiten ari bazara eta zure sisteman kalteak eragiten hasi beharko zenituzke. hiltzeko.

Script bat atzeko planoan exekutatzen den script-aren prozesua idazteko behar duzunean hiltzeko. Ez litzateke ona izango script-ak prozeduraren IDa bere irteeraren zati gisa eman baldin badu. ( ps eta hil komandoei buruz )

Azkenean, gai honekin amaitu baino lehen, irteerari buruz eztabaidatu nahi nuen. Gidoiak pantailan erakutsitako irteera izan den bakoitzean exekutatu den bakoitzean.

Irteerako fitxategira idatzitako irteera irteera nahiko arrunta da. Horretarako, exekutatu script hau honela:

sh greetme.sh gary> greetme.log

Goiko aginduan ikurrak "hello gary" testua salto egiten du greetme.log izeneko fitxategi batera.

Gidoia exekutatzen duzun bakoitzean> ikurra irteerako fitxategiaren edukia gainidazten du. Fitxategia gehitzeko nahiago baduzu, ordezkatu> egin >>.

Laburpen

Pantailako testua idazteko eta sarrera parametroak onartzeko gai izan beharko zenuke.