Buku loyamba kwa BASH - Kuyika Parameters

Takulandirani ku gawo lachiwiri la Buku loyamba kwa Bash Series omwe ali osiyana kwambiri ndikuti ndi BASH yokhayo yophunzitsidwa ndi oyamba kumene.

Owerenga a ndondomekoyi adzalimbikitsa chidziwitso chawo pamene ndimapanga chidziwitso changa ndikuyembekeza kuti pamapeto pake tidzatha kulemba malemba ozindikira bwino.

Mlungu watha ine ndinaphimba kupanga script yanu yoyamba yomwe imangowonetsa mawu akuti "Moni Wadziko". Zimaphatikizapo nkhani monga olemba malemba, momwe mungatsegule zenera zowonongeka, kumene mungaike malemba anu, momwe mungasonyezere mawu akuti "Moni Wachikondi" ndi mfundo zina zabwino kwambiri pazomwe angapulumuke monga ndemanga ("").

Sabata ino ndikuyang'ana magawo owonjezera. Palinso maulendo ena omwe amaphunzitsa mtundu umenewu koma ndikupeza kuti akudumphira ku zinthu zina zochepa ndipo mwina amapereka zambiri zambiri.

Kodi Parameter Ndi Chiyani?

Mulemba la "Hello World" kuchokera kumaphunziro otsiriza, zonsezi zinali zolimba kwambiri. Script sizinapange kwenikweni.

Tingawathandize motani palemba la "Hello World"?

Nanga bwanji zalemba zomwe zimapereka ulemu kwa munthu amene amayendetsa? M'malo moti "Moni Wanga" adzati "Moni Gary", "Moni Tim" kapena "Hello Dolly".

Popanda kulandira magawo otsogolera tiyenera kulemba malemba atatu "hellogary.sh", "hellotim.sh" ndi "hellodolly.sh".

Mwa kulola kuti malemba athu awerenge magawo owonjezera omwe tingagwiritse ntchito script kuti tipereke moni kwa wina aliyense.

Kuchita izi kutsegula zenera (CTRL + ALT + T) ndikupita ku fayilo yanu polemba izi: ( za cd lamulo )

cd scripts

Pangani script yatsopano yotchedwa moni.sh mwa kulemba zotsatirazi: ( za lamulo lakukhudza )

gwiritsani moni.sh

Tsegulani script mu mkonzi wokondedwa wanu polemba zotsatirazi: ( za lamulo la nano )

nano moni.sh

Lowani malemba awa mkati mwa nano:

#! / bin / bash ndi "moni $"

Dinani CTRL ndi O kuti muzisunga fayilo ndipo kenako CTRL ndi X kuti mutseke fayilo.

Kulemba script lowetsani zotsatirazi mu mzere wa malamulo m'malo mwa dzina lanu.

sh moni.sh

Ngati ndilemba script ndi dzina langa limasonyeza mawu akuti "Moni Gary".

Mzere woyamba uli ndi #! / Bin / bash line yomwe imagwiritsidwa ntchito kuzindikira fayilo ngati bash script.

Mzere wachiwiri umagwiritsa ntchito mawu a echo kuti amve mawu oti hello ndipo apo pali $ zachilendo @ @ notation. ( za lamulo la echo )

$ @ Ikuwonjezeka kuti iwonetse chizindikiro chirichonse chomwe chinalowa limodzi ndi dzina la script. Kotero ngati mwalemba "moni moni" sh "mawu akuti" hello tim "angasonyezedwe. Ngati mwalemba "moni greetings.sh tim smith" ndiye mawu akuti "hello tim smith" adzawonetsedwa.

Zingakhale zabwino kwa moni.sh script kungonena hello pogwiritsa ntchito dzina loyamba. Palibe amene akunena "hello gary newell" akadzakomana nane, akhoza kunena "hello gary" ngakhale.

Tiyeni tisinthe script kuti tigwiritse ntchito choyambirira choyamba. Tsegulani moni.sh script mu nano polemba zotsatirazi:

nano moni.sh

Sinthani script kuti liwerenge motere:

#! / bin / bash ndi "moni $ 1"

Sungani script pakukakamiza CTRL ndi O ndipo kenako tulukani mwa kukanikiza CTRL ndi X.

Kuthamanga script monga momwe tawonetsera m'munsimu (bweretsani dzina langa ndi lanu):

sh moni.sh gary newell

Pamene muthamanga script zidzangonena kuti "hello gary" (kapena kuti "hello" ndi dzina lanu lonse.

Yoyamba 1 pambuyo pa $ symbol kwenikweni imanena ku lamulo lolembera, gwiritsani ntchito choyamba choyimira. Ngati mutengapo $ 1 ndi $ 2 ndiye kuti iwonetsere "hello newell" (kapena chirichonse chomwe mumatchula).

Mwachidziwikire ngati mutasintha $ 2 ndi $ 3 ndikuyendetsa scriptyi ndi magawo awiri okha zomwe mutulutsazo zingangokhala "Moni".

N'zotheka kuwonetsa ndi kusamalira chiwerengero cha magawo omwe adalowa nawo komanso pambuyo pake ndikuphunzitsa momwe ndingagwiritsire ntchito chiwerengero cha parameter kuti zitsimikizidwe.

Kuwonetsa chiwerengero cha magawo analowetsa moni.sh script (nano greetme.sh) ndikukonza malemba motere:

#! / bin / bash echo "munalowa $ # maina" echo "moni $ @"

Dinani CTRL ndi O kuti muzisunga script ndi CTRL ndi X kuti mutuluke nano.

$ # Pa mzere wachiwiri akuwonetsera chiwerengero cha magawo omwe adalowa.

Mpaka pano zonsezi zalembedwa koma sizothandiza kwambiri. Ndani akufunikira script yomwe imangoonetsa "hello"?

Kugwiritsiridwa ntchito kwenikweni kwa mawu a echo ndi kupereka verbose ndi zopindulitsa zogwiritsidwa ntchito kwa wosuta. Ngati mungathe kuganiza kuti mukufuna kuchita zovuta zomwe zikuphatikizapo kuchuluka kwa chiwerengero cha fayilo / fayilo / kusokoneza fayilo kungakhale koyenera kuwonetsera kwa omwe akugwiritsa ntchito zomwe zikuchitika muyeso iliyonse.

Mosiyana, magawo otsogolera amapangitsa kuti script yanu iyanjanitsidwe. Popanda magawo otsogolera omwe mungafunike malemba ambiri mukuchita zinthu zofanana koma ndi mayina osiyana.

Ndizo zonsezi mu malingaliro pali zowonjezera zina zowonjezera zothandiza kuti ndi lingaliro labwino kudziwa ndipo ine ndikuziphatikiza zonsezo mu ndemanga imodzi yokha.

Tsegulani script yanu ya greetings.sh ndikukonzekera motere:

#! / bin / bash mawu "Filename: $ 0" echo "Ndondomeko ID: $$" echo "---------------------------- "" echo "munalowa $ # maina" echo "moni $ @"

Dinani CTRL ndi O kuti muzisunga fayilo ndi CTRL ndi X kuti mutuluke.

Tsopano Thamani script (m'malo ndi dzina lanu).

sh moni.sh

Panthawiyi script ikusonyeza zotsatirazi:

Filename: greetme.sh Ntchito ID: 18595 ------------------------------ munalowa mayina awiri hello gary newell

$ 0 pa mzere woyamba wa script akuwonetsera dzina lalemba limene mukuyendetsa. Tawonani kuti ndi dola zero osati oola o.

The $$ pa mzere wachiwiri akuwonetsera ndondomeko id ya script yanu ikuyendetsa. Nchifukwa chiyani izi zili zothandiza? Ngati mukulemba script patsogolo mungathe kuziletsa mwa kungowonjezera CTRL ndi C. Ngati mutayendetsa script kumbuyo ndikuyamba kutembenuka ndikuchita chinthu chomwecho mobwerezabwereza kapena kuyamba kuwononga dongosolo lanu muyenera kupha izo.

Kupha script kumayenderera kumbuyo kumasowa chidziwitso cha script. Sindikanakhala bwino ngati script inapereka chidziwitso chadongosolo monga gawo lake. ( za ps ndi kupha malamulo )

Pamapeto pake ndisanamalize ndi mutuwu ndikufuna kukambirana za komwe chiwongoladzanja chikupita. Nthawi iliyonse script ikuyendetsa pakali pano zotsatira zowonekera pawindo.

Zili zofala kwambiri kuti zolembazo zilembedwe ku fayilo yotuluka. Kuti muchite izi muzilemba script yanu motere:

sh moni.sh gary> mandi.log

I> chizindikiro mu lamulo ili pamwambapa limapereka mawu akuti "hello gary" ku fayilo yotchedwa greetme.log.

Nthawi iliyonse mukamayendetsa script ndi> chizindikiro chimalowetsamo zomwe zili mu fayilo. Ngati mukufuna kufotokozera fayilo m'malo mwake> ndi >>.

Chidule

Muyenera tsopano kulemba malemba pawindo ndikuvomereza magawo olowera.