Tosaitheoirí Treoir go BASH - Paraiméadair Ionchur

Fáilte go dtí an dara cuid den tsraith Tosaitheoirí Guide to BASH atá uathúil mar gurb é an t-aon teagaisc BASH atá scríofa ag bunleibhéal do thosaitheoirí.

Déanfaidh léitheoirí an treoir seo a gcuid eolais a thógáil agus mé ag cur suas mo chuid eolais agus táthar ag súil go mbeidh muid in ann scríobh scripteanna a dhéanamh go cothrom le deireadh.

An tseachtain seo caite chlúdaigh mé a chruthú do chéad script a léirigh ach na focail "Hello World". Clúdaíonn sé ábhair ar nós eagarthóirí téacs, conas fuinneog críochfoirt a oscailt, cá háit le do chuid scripteanna a chur ar fáil, conas na focail "Hello World" a thaispeáint agus roinnt pointí níos measa ar charachtair éalaithe cosúil le Sleachta ("").

An tseachtain seo táim ag plé le paraiméadair ionchuir. Tá treoracha eile ann a mhúineann an saghas rud seo ach táim ag teacht isteach i roinnt rudaí ar leibhéal íseal agus b'fhéidir go gcuirfí an iomarca eolais ar fáil.

Cad is Páiméadar ann?

Sa script "Hello World" as an teagasc teagaisc dheireanach, bhí sé an-statach. Ní raibh an script i bhfad i ndáiríre.

Conas is féidir linn feabhas a chur ar an script "Hello World"?

Cad mar gheall ar script a mhaireann an duine a ritheann é? In ionad "Dia duit Domhanda" a rá, deir sé "Dia duit Gary", "Hello Tim" nó "Hello Dolly".

Gan an cumas glacadh le paraiméadair ionchuir, ní mór dúinn trí script a scríobh "hellogary.sh", "hellotim.sh" agus "hellodolly.sh".

Trí chead a thabhairt dár script chun paraiméadair ionchuir a léamh, is féidir linn script amháin a úsáid chun aon duine a bheannú.

Chun seo a dhéanamh oscail fuinneog teirminéil (CTRL + ALT + T) agus foláir do fhillteán scripteanna tríd an méid seo a leanas a chlóscríobh: ( faoi ​​ordú cd )

scripteanna cd

Cruthaigh script nua ar a dtugtar greetme.sh ag clóscríobh na nithe seo a leanas: ( faoi ​​ordú dteagmháil )

teagmháil greetme.sh

Oscail an script i d'eagarthóir is fearr leat tríd an méid seo a leanas a chlóscríobh: ( faoi ​​ordú nano )

nao greetme.sh

Cuir isteach an téacs seo a leanas laistigh de nano:

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

Brúigh CTRL agus O chun an comhad a shábháil agus CTRL agus X ansin an comhad a dhúnadh.

Chun an script a reáchtáil, cuir isteach an méid seo a leanas isteach sa líne orduithe ag athsholáthar d'ainm.

sh greetme.sh

Má reáchtáiltear an script le mo ainm taispeánann sé na focail "Hello Gary".

Tá an líne #! / Bin / bash ar an gcéad líne a úsáidtear chun an comhad a aithint mar script bash.

Úsáideann an dara líne an ráiteas macalla chun an focal hello a mhacasamhlú agus ansin tá an nóta $ @ notation ann. ( faoi ​​ordú macalla )

Leathnaíonn $ @ $ chun gach paraiméadar a taifeadadh chomh maith leis an ainm script a thaispeáint. Mar sin, má chlóscríobh tú "sh greetme.sh tim" taispeántar na focail "hello tim". Má chlóscríobh tú "greetme.sh tim smith" ansin taispeántar na focail "hello tim smith".

D'fhéadfadh sé go mbeadh sé deas don script greetme.sh a rá go díreach ag baint úsáide as an chéad ainm. Ní deir aon duine "hello gary newell" nuair a bhuaileann siad liom, áfach, d'fhéadfadh siad "hello gary" a rá.

Athraigh an script ionas go n-úsáideann sé ach an chéad pharaiméadar. Oscail an script greetme.sh in nano ag clóscríobh na nithe seo a leanas:

nao greetme.sh

Athraigh an script ionas go léireoidh sé mar seo a leanas:

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

Sábháil an script trí CTRL agus O a bhrú agus ansin scoir trí CTRL agus X a bhrú.

Rith an script mar a thaispeántar thíos (cuir mo ainm in áit liom):

sh greetme.sh gary newell

Nuair a reáchtálann tú an script, déanfaidh sé ach "hello gary" (nó tá súil agam "hello" agus is cuma cad é d'ainm.

Deir an 1 tar éis an tsiombail $ go bunúsach leis an gceannas macalla, bain úsáid as an gcéad pharaiméadar. Má athraíonn tú $ 1 le $ 2 ansin taispeánfadh sé "hello newell" (nó is cuma cad é do shloinne).

Teagmhasach má d'áitigh tú $ 2 le $ 3 agus rith an script le 2 pharaiméadar, ní bheadh ​​an t-aschur ach "Dia duit".

Is féidir an líon paraiméadair a iontráil i ndáiríre a thaispeáint agus a láimhseáil agus i ranganna teagaisc ina dhiaidh sin beidh mé ag léiriú conas an comhaireamh paraiméadar a úsáid chun críocha bailíochtaithe.

Chun an líon paraiméadair a thaispeántar a thaispeáint, oscail an script greetme.sh (nano greetme.sh) agus leasóidh sé an téacs mar seo a leanas:

#! / bin / bash echo "iontráil tú $ # names" macalla "hello $ @"

Brúigh CTRL agus O chun an script agus CTRL agus X a shábháil chun nano a scoir.

Taispeánann an $ # ar an 2ú líne líon na bparaiméadar isteach.

Go dtí seo, bhí an t-ábhar nua seo uile ach níl sé an-úsáideach. Cé a theastaíonn script a thaispeánann "hello" go simplí?

Is é an fíor-úsáid a bhaineann le ráitis macalla ná aschur focal agus aschur brí a chur ar fáil don úsáideoir. Más féidir leat a shamhlú go bhfuil tú ag iarraidh rud éigin a dhéanamh casta ina bhfuil roinnt crónna tromchúiseacha agus ionramháil comhad / fillteán, bheadh ​​sé úsáideach an méid atá ag tarlú ar gach céim den bhealach a thaispeáint don úsáideoir.

I gcodarsnacht leis sin, déanann paraiméadair ionchuir do script idirghníomhach. Gan na paraiméadair ionchuir, bheadh ​​ort go leor de na scripteanna go léir ag déanamh rudaí an-chosúil ach le hainmneacha beagán difriúla.

Agus é seo go léir i gcuimhne tá roinnt paraiméadair ionchuir úsáideacha eile ann gur smaoineamh maith é a bheith in ann agus cuirfidh mé iad uile i bhfód amháin ar chód.

Oscail do script greetme.sh agus leasú é mar seo a leanas:

#! / bin / bash echo "Ainm comhaid: $ 0" macalla "ID Próiseas: $$" macalla "---------------------------- --- "macalla" d'iontráil tú $ #ainmneacha "macalla" Dia duit $ @ "

Brúigh CTRL agus O chun an comhad a shábháil agus CTRL agus X a fhágáil.

Anois Rith an script (cuir d'ainm in áit).

sh greetme.sh

An uair seo taispeánann an script an méid seo a leanas:

Ainm comhaid: greetme.sh Próiseas Aitheantais: 18595 ------------------------------ chuir tú 2 ainm isteach Dia duit gary newell

Taispeánann an $ 0 ar chéad líne an script ainm an script atá á reáchtáil agat. Tabhair faoi deara gurb é an dollar ná nialas ná an dollar ná.

Taispeánann an $ $ ar an dara líne próiseas an script atá á reáchtáil agat. Cén fáth a bhfuil sé seo úsáideach? Má tá tú ag rith script sa tulra, is féidir leat é a chealú trí CTRL agus C. a chur ar ceal má rinne tú an script sa chúlra agus thosaigh sé ag déanamh looping agus ag déanamh an rud céanna thar agus os a chionn nó a d'fhéadfadh damáiste a dhéanamh do chóras a bheadh ​​uait a mharú.

Chun script a mharú atá á reáchtáil sa chúlra, is gá duit próiseas an script. Ní bheadh ​​sé go maith má thug an script an próiseas mar chuid dá aschur. ( faoi ​​ps agus orduithe a mharú )

Ar deireadh sula n-éireoidh mé leis an ábhar seo bhíim ag iarraidh plé a dhéanamh faoin áit a dtéann an t-aschur. Gach uair a reáchtáil an script go dtí seo tá an t-aschur curtha ar taispeáint ar an scáileán.

Is coitianta é go n-éireodh aschur na scripte chuig comhad aschuir. Chun seo a dhéanamh, reáchtáil do script mar seo a leanas:

sh greetme.sh gary> greetme.log

Cuireann an siombail sa ordú thuas an téacs "hello gary" chuig comhad darb ainm greetme.log.

Gach uair a reáchtálann tú an script leis an siombail> déanann sé an t-ábhar ar an gcomhad aschuir a athscríobh. Más fearr leat an comhad a chur leis an> comhad a chur in ionad> le >>.

Achoimre

Ba cheart duit anois téacs a scríobh chuig an scáileán agus glacadh le paraiméadair ionchuir.