Débutan Gid Pou BASH - Paramèt Antre

Byenveni nan dezyèm pati a nan gid yo débutan Pou seri BASH ki se inik nan ke li se leson patikilye a sèlman BASH ekri pa yon debutan pou débutan.

Lektè nan gid sa a pral bati konesans yo jan mwen bati konesans mwen ak èspere ke nan fen li tout nou yo pral kapab ekri kèk Scripts jistis entelijan.

Semèn pase a mwen kouvri kreye premye script ou ki senpleman parèt mo "Hello World" la. Li kouvri sijè tankou editè tèks, ki jan yo louvri yon fenèt tèminal, ki kote yo mete Scripts ou a, ki jan yo montre mo yo "Hello World" ak kèk pwen sibtil sou karaktè chape tankou quotes ("").

Semèn sa a mwen pral kouvri paramèt opinyon. Gen lòt gid ki anseye sa a sòt de bagay men mwen jwenn yo sote nan kèk bagay nivo jistis ki ba e petèt bay enfòmasyon twòp.

Ki sa ki se yon paramèt?

Nan "Hello World" script la soti nan leson patikilye nan dènye li te tout trè estatik. Script la pa t 'reyèlman fè anpil nan tout.

Ki jan nou ta ka amelyore nan script la "Hello World"?

Ki sa ki sou yon script ki salye moun ki kouri li? Olye pou yo di "Hello World" li pral di "Bonjou Gary", "Hello Tim" oswa "Hello Dolly".

San yo pa kapasite nan aksepte paramèt opinyon nou ta bezwen ekri twa Scripts "hellogary.sh", "hellotim.sh" ak "hellodolly.sh".

Pa pèmèt script nou an li paramèt D 'nou ka itilize yon sèl script pou voye bonjou pou nenpòt moun.

Pou fè sa louvri moute yon fenèt tèminal (Ctrl + ALT + T) ak navige nan Katab Scripts ou pa saisie sa ki annapre yo: ( sou lòd cd )

CD Scripts

Kreye yon nouvo script ki rele greetme.sh pa tape bagay sa yo: ( sou lòd manyen )

manyen greetme.sh

Louvri script la nan editè pi renmen ou pa tape bagay sa yo: ( sou lòd nano )

nano greetme.sh

Antre nan tèks sa a nan nano:

#! / bin / bach eko "hello $ @"

Press CTRL ak O pou konsève pou dosye a ak Lè sa a, CTRL ak X yo fèmen dosye a.

Kouri script la antre nan sa ki annapre yo nan liy lan lòd ranplase ak non ou.

sh greetme.sh

Si mwen kouri script la ak non mwen li montre mo "Hello Gary" la.

Liy nan premye gen liy lan! / Bin / bach ki itilize yo idantifye dosye a kòm yon script frape.

Liy nan dezyèm sèvi ak deklarasyon an eko yo eko mo alo a ak Lè sa a, gen etranj $ @ notasyon an. ( sou lòd echo )

$ @ Ap ogmante pou montre chak paramèt ki te antre ansanm ak non script. Se konsa, si ou tape "sh greetme.sh tim" mo yo "hello tim" ta dwe parèt. Si ou tape "greetme.sh tim smith" Lè sa a, mo yo "hello tim smith" ta dwe parèt.

Li ta ka bon pou script a greetme.sh jis di hello lè l sèvi avèk jis non an premye. Pa gen moun ki di "hello gary newell" yo lè yo rankontre m ', yo ta ka di "hello gary" menm si.

Se pou nou chanje script la konsa ke li jis itilize paramèt nan premye. Louvri script la greetme.sh nan nano pa sezite sa ki annapre yo:

nano greetme.sh

Chanje script la pou li li jan sa a:

#! / bin / bach eko "hello $ 1"

Sove script la pa peze CTRL ak O ak Lè sa a, sòti pa peze CTRL ak X.

Kouri script la jan yo montre anba a (ranplase non mwen ak ou):

sh greetme.sh gary newell

Lè ou kouri script la li pral tou senpleman di "hello gary" (oswa èspere ke "hello" ak tou sa non ou se.

1 la apre senbòl la $ fondamantalman di kòmandman an eko, sèvi ak paramèt nan premye. Si ou ranplase $ 1 ak yon $ 2 Lè sa a, li ta montre "hello newell" (oswa kèlkeswa non ou se).

Dmeran si ou ranplase $ 2 a ak yon $ 3 epi li kouri script la ak jis 2 paramèt pwodiksyon an ta senpleman "Hello".

Li posib yo montre ak okipe kantite paramèt aktyèlman antre nan ak nan tutoryèl pita mwen pral montre kouman yo sèvi ak konte a paramèt pou rezon validasyon.

Pou montre kantite paramèt ki te antre open script la greetme.sh (nano greetme.sh) ak amande tèks la jan sa a:

#! / bin / bash eko "ou te antre $ non $" eko "hello $ @"

Press CTRL ak O pou sove script la ak CTRL ak X pou sòti nano.

$ La # sou liy 2yèm la montre kantite paramèt ki te antre.

Se konsa, lwen tout sa a te roman, men se pa trè itil. Ki moun ki bezwen yon script ki tou senpleman montre "hello"?

L 'a reyèl pou deklarasyon eko se bay pwodiksyon ak siyifikatif pwodiksyon itilizatè a. Si ou ka imajine ke ou vle fè yon bagay konplike ki enplike kèk nimewo grav crunching ak dosye / folder manipilasyon li ta itil yo montre itilizatè a sa k ap pase chak etap nan chemen an.

Kontrèman, paramèt opinyon fè script ou entèaktif. San paramèt opinyon ou ta bezwen plizyè douzèn Scripts tout fè bagay sa yo trè menm jan ak men ak non yon ti kras diferan.

Avèk tout bagay sa yo nan tèt ou gen kèk lòt paramètres opinyon itil ke li se yon bon lide yo konnen epi mwen pral gen ladan yo tout nan yon sèl brib kòd.

Louvri scriptie greetsh.sh ou a ak chanje li jan sa a:

#! / bin / bach eko "Filename: $ 0" eko "ID Pwosesis: $$" Eko "---------------------------- --- "eko" ou te antre $ $ non "eko" hello $ @ "

Press CTRL ak O pou konsève pou dosye a ak CTRL ak X a sòti.

Koulye a, kouri script la (ranplase ak non ou).

sh greetme.sh

Fwa sa a, script la montre sa ki annapre yo:

Filename: greetme.sh Pwosesis ID: 18595 ------------------------------ ou te antre nan 2 non alo gary newell

$ 0 nan premye liy script la montre non script ou ap kouri a. Remake byen ke li se zewo dola epi yo pa dola o.

$ La sou dezyèm lan montre ekspozisyon id la nan script la ou yo ap kouri. Poukisa sa itil? Si ou ap kouri yon script nan premye plan an ou ka anile li pa tou senpleman peze CTRL ak C. Si ou kouri script la nan background nan epi li te kòmanse bouyi ak fè menm bagay la sou yo ak sou oswa te kòmanse sa ki lakòz domaj nan sistèm ou a ou ta bezwen yo touye l '.

Pou touye yon script kouri nan background nan ou bezwen id la pwosesis nan script la. Pa ta li ta bon si script la te bay id pwosesis la kòm yon pati nan pwodiksyon li yo. ( sou ps ak touye kòmandman )

Finalman anvan mwen fini ak sijè sa a mwen te vle diskite sou ki kote pwodiksyon an ale. Chak fwa script la te kouri konsa byen lwen te pwodiksyon an te parèt sou ekran an.

Li se byen komen pou pwodiksyon script yo dwe ekri nan yon dosye pwodiksyon. Pou fè sa, ekri script ou jan sa a:

sh greetme.sh gary> greetme.log

Senbòl la> nan lòd ki pi wo a rann tèks la "hello gary" nan yon dosye ki rele greetme.log.

Chak fwa ou kouri script la ak senbòl la li ranplase sa ki nan dosye a pwodiksyon. Si ou ta prefere kole nan dosye a ranplase a> ak >>.

Rezime

Ou ta dwe kounye a kapab ekri tèks ekran an ak aksepte paramèt opinyon.