Vanotanga Kutungamira Ku BASH - Input Parameters

Kugamuchirwa kune chikamu chepiri cheVatangi vekutanga kune BASH series iyo yakasiyana nekuti ndiyo chete BASH zvidzidzo zvakanyorwa nevatangi vevatangisi.

Vaverengi vemutungamiri uyu vachavaka ruzivo rwavo sezvo ini ndichivaka ruzivo rwangu uye tarisiro nekuguma kwaro zvose tichakwanisa kunyora dzimwe nyanzvi dzakachenjera.

Vhiki rakapera ndakavhara kusika yako yekutanga script iyo yakangoratidza mazwi "Hello World". Inosanganisira zvidzidzo zvakadai sevarairi vashanduri, mabhii ekuzarura firati yekugadzirisa, uko kwaunogona kuisa magwaro ako, maitiro ekuratidza mazwi okuti "Nhasi Nyika" uye dzimwe nhepfenyuro dzakasununguka pamunhu anenge akapukunyuka akadai semashoko ("").

Vhiki rino ini ndiri kuenda kuvhara maonero emiganhu. Kune mamwe mazano anodzidzisa rudzi urwu rwezvinhu asi ndinoona kuti vanopinda mune zvimwe zvinhu zvakaderera pasi uye zvichida vanopa ruzivo rwakanyanya.

Chii Chinonzi Parameter?

Mune shanduro ye "Hello World" kubva kumudzidzisi wekupedzisira yakanga iri yose yakanyanyisa. Iyo script haina kunyanya kuita zvakawanda zvachose.

Tingaita sei kuti tigadzirise pane "Hello World" script?

Zvakadini nekanyorwa chinopa munhu anomhanya? Panzvimbo pokutaura kuti "Nhasi Nyika" inoti "Hello Gary", "Hello Tim" kana kuti "Hello Dolly".

Pasina kukwanisa kugamuchira mitsara yekupindira yatinofanira kunyora magwaro matatu "hellogary.sh", "hellotim.sh" uye "hellodolly.sh".

Nokubvumira script yedu kuti ivere zviyero zvekushandisa tinogona kushandisa script imwe kuti tikwanise kukwazisa ani zvake.

Kuti uite izvi uzarure hwindo rekugadzirisa (CTRL + ALT + T) uye famba uchienda pane yako script folda nekunyora zvinotevera: ( pamusoro pe cd command )

cd scripts

Gadzira script itsva inonzi greetings.sh nekunyora zvinotevera: ( pamusoro pekubata command )

taura nkwazisa.sh

Vhura script munharaunda yako yaunoda nekunyora zvinotevera: ( nezve nano command )

nano greetme.sh

Isa mutsara unotevera mukati me nano:

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

Dhinda CTRL uye O kuti uchengetedze faira uye ipapo CTRL uye X kuti uvhare faira.

Kuti uise script pinda zvinotevera mumutsetse wemirairo uchishandisa zita rako.

sh mukwazisa.sh

Kana ini ndichishandisa script zita rangu rinoratidza mazwi "Hello Gary".

Mutsara wokutanga une #! / Bin / bash line iyo inoshandiswa kuzivisa faira sebhashi script.

Rutsva rwechipiri rinoshandisa mazwi echokutaura kuti anyore shoko rokuti hello uye ipapo pane imwe nyika isingazivikanwi @ notation. ( pamusoro pomurayiro weEcho )

I $ @ inowedzera kuti iratidze maimiriro ose akaiswa pamwe chete nezita re script. Saka kana iwe wakanyora "sh mukwaziso.sh tim" mazwi "hello tim" aizoratidzwa. Kana iwe wakanyora "mukwazisa.sh tim smith" ipapo mazwi "hello tim smith" aizoratidzwa.

Zvinogona kunge zvakanaka nokuda kwekukwazisa.sh script kuti tingoti hello uchishandisa zita rekutanga chete. Hapana anoti "hello gary newell" pavanosangana neni, vangati "hello gary" kunyange zvakadaro.

Ngatishandure script kuitira kuti ichangoshandisa yekutanga parameter. Vhura shanduro yenyasha.sh mu nano nekunyora zvinotevera:

nano greetme.sh

Shandura script kuitira kuti iverenge sezvinotevera:

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

Chengetedza script nokudhinda CTRL uye O uye wozobuda nokudhinda CTRL uye X.

Runza script sezvaratidzwa pasi apa (shandura zita rangu ne rako):

sh mupepeti.sh gary newell

Paunenge uchinyora script inongotaura kuti "hello gary" (kana kuti "hope" uye chero zita rako riri.

Iko mushure mekufananidzira kwe $ $ inoreva kuraira kwekunyorera, shandisa yekutanga parameter. Kana iwe ukatsiva $ 1 ne $ 2 ipapo inogona kuratidza "hello newell" (kana chipi zvacho chaunotumidza).

Zvichiitika kana iwe wakatsiva $ 2 uine $ 3 uye wakamhanya script ne 2 mamiririro ega zvaizova "Hello" chete.

Zvinokwanisika kuratidza nekubata nhamba yemiganhu yakapinda zvechokwadi uye munguva inotevera tutorials Ndichange ndichiratidza kuti ndingashandisa sei parameter kuverenga nekuda kwekugadzirisa zvinangwa.

Kuti uratidze nhamba yemiganhu yakaiswa yakazarurirwa muromo.sh script (nano greetme.sh) uye shandura mutsara sezvinotevera:

#! / bin / bash echo "iwe wapinda $ # mazita" echo "hello $ @"

Chinda CTRL uye O kuti uchengetedze script uye CTRL uye X kuti ibve nano.

Mari ye # # pamutsara wechipiri inoratidza nhamba yemiganhu yakapinda.

Kusvika ikozvino zvose izvi zvange zviri nhoroondo asi isingakoshi. Ndiani anoda script inongoratidza "hello"?

Kushandiswa kwechokwadi kwemashoko echo ndekupa verbose uye zvinoreva zvakakwana kumunhu. Kana iwe uchigona kufungidzira kuti iwe unoda kuita chimwe chinhu chakaoma chinosanganisira imwe nhamba yakakura crunching uye faira / faira kudzvinyirira zvingava zvakanaka kuratidza kumunhu chii chiri kuitika nhanho imwe neimwe yenzira.

Kusiyana neizvi, zviyero zvekupinza zvinoita kuti script yako inoshanda. Pasina purogiramu yemiganhu iwe waunoda mapepa ezvinyorwa zvose anoita zvinhu zvakafanana zvakadai asi nemazita akasiyana.

Nezvose izvi mupfungwa kune mamwe mazano anoshanda ekubatsira kuti iri pfungwa yakanaka yekuziva uye ini ndichavaisa vose mune imwe snippet code.

Vhura script yako yekukwazisa.sh uye uigadzirise nenzira inotevera:

#! / bin / bash echo "Filename: $ 0" echo "Process ID: $$" echo "---------------------------- --- "echo" iwe wakapinda $ # mazita "echo" hello $ @ "

Dhinda CTRL uye O kuti uchengetedze faira uye CTRL uye X kuti ibve.

Iye zvino Famba script (shandisa zita rako).

sh mukwazisa.sh

Panguva ino script inoratidza zvinotevera:

Filename: greetme.sh Process ID: 18595 ------------------------------ iwe wakapinda mazita maviri hello gary newell

I $ 0 pamutsara wekutanga we script inoratidza zita re script uri kushanda. Cherechedza kuti iri dollar zero uye kwete dhora o.

Iko $$ pamutsara wechipiri inoratidza id inoshandiswa ye script yako iri kushanda. Nei izvi zvichibatsira? Kana iwe uri kutarisa script mberi kwako unogona kuzvisundira nekungoomesa CTRL uye C. Kana iwe wakashandura script kumashure uye yakatanga kutengesa uye kuita chinhu chimwechete nekudzoka kana kutanga kukonzera kukuvadza kwehurongwa hwako waunoda kuti uuraye.

Kuuraya script inomhanya kumashure unoda id inonzi script ye script. Hazvingave zvakanaka here kana script ichipa iyo nzira id sechikamu chekubuda kwayo. ( nezve ps uye kuuraya mirairo )

Pakupedzisira ndisati ndapedzisa nehurukuro iyi ini ndaida kukurukura pamusoro pokuti zvinowanikwa kupi. Nguva imwe neimwe iyo script yakamhanya kusvika ikozvino zvakabuda zvakaratidzwa pahwindo.

Izvo zvakajairika pane zvinyorwa zvinyorwa kuti zvinyorwe kune yakabuda yefaira. Kuti uite izvi runza script yako nenzira inotevera:

sh mukama.sh gary> mukama.log

Iko> chiratidzo mumurairo wepamusoro inobudisa mutsara unoti "hello gary" kune faira inonzi greetme.log.

Nguva dzose paunenge uchitamba script ne> chiratidzo icho chinonyora zvinyorwa zvayo kubva pane faira. Kana iwe ungada kuwedzera kune faira panzvimbo ye> ne >>.

Summary

Iwe zvino unofanirwa kukwanisa kunyora mashoko kuchikwangwani uye bvuma mitsara yekupinza.