Conas Argóintí a Phas go Bash-Script

Orduithe, comhréir agus samplaí

Is féidir leat script bash a scríobh den sórt sin go bhfaighidh sé argóintí a shonraítear nuair a iarrtar ar an script ón líne ordaithe. Úsáidtear an modh seo nuair a chaithfidh script feidhm bheagán difriúil ag brath ar luachanna na bparaiméadar ionchuir (na hargóintí).

Mar shampla, b'fhéidir go mbeadh script agat ar a dtugtar "stats.sh" a dhéanann oibríocht ar leith ar chomhad, mar shampla comhaireamh a chuid focail. Más mian leat an script sin a úsáid ar go leor comhad, is fearr an t-ainm comhad a sheoladh mar argóint, ionas gur féidir leat an script céanna a úsáid chun na comhaid go léir a phróiseáil. Mar shampla, más "ainmlitir" ainm an chomhad a phróiseáil, cuirfá isteach an líne ordaithe seo a leanas:

Liosta amhrán sh stats.sh

Faigheann argóintí a fháil taobh istigh de script ag baint úsáide as na hathróga $ 1, $ 2, $ 3, etc., áit a dtagraíonn $ 1 don chéad argóint, $ 2 go dtí an dara argóint, agus mar sin de. Léirítear é seo sa sampla seo a leanas:

COMHAD1 = $ 1 wc $ COMHAD1

Chun inléiteachta, athróg a shannadh le hainm tuairisciúil ar luach na chéad argóint ($ 1), agus ansin glaoigh an fóntais cuntais focal ( wc ) ar an athróg seo ($ FILE1).

Má tá líon athróg de na hargóintí agat, is féidir leat an t-athróg "$ @" a úsáid, atá ina sraith de na paraiméadair ionchuir go léir. Ciallaíonn sé seo gur féidir leat for-loop a úsáid chun gach ceann a phróiseáil, mar atá léirithe sa sampla seo a leanas:

le haghaidh COMHAD1 i "$ @" déanfar $ FILE1 déanta

Seo sampla de conas an script seo a ghlaoch le hargóintí ón líne ordaithe:

amh stats.sh songlist1 songlist2 songlist3

Má tá spásanna ag argóint, caithfidh tú a luí le luachanna aonair. Mar shampla:

sh stats.sh 'songlist 1' 'songlist 2' 'songlist 3'

Go minic scríobhann script ionas gur féidir leis an úsáideoir argóintí a dhéanamh in aon ord a úsáideann brataí. Leis an modh bratach, is féidir leat cuid de na hargóintí a roghnú freisin.

Abair go bhfuil script agat a aisghabhann faisnéis ó bhunachar sonraí bunaithe ar pharaiméadair shonraithe, mar shampla "ainm úsáideora", "dáta", agus "táirge", agus gineann tuarascáil i "formáid" sonraithe. Anois, is mian leat do script a scríobh ionas gur féidir leat pas a fháil sna paraiméadair seo nuair a ghlaoitear an script. D'fhéadfadh sé a bheith mar seo:

makereport -u jsmith -p notebooks -d 10-20-2011 -f pdf

Cuireann Bash an fheidhmiúlacht seo ar chumas an fheidhm "getopts". Chun an sampla thuas, d'fhéadfá getopts a úsáid mar seo a leanas:

Seo lúb seasta a úsáideann an fheidhm "getopts" agus "optstring" mar a thugtar air, sa chás seo "u: d: p: f:", a chur ar ais trí na hargóintí. Téann an t-am-lúb tríd an optstring, ina bhfuil na bratacha is féidir a úsáid chun argóintí a fháil, agus sannann sé an luach argóint a sholáthraítear don bhratach sin don "rogha" athraitheach. Ansin sannann an cás-ráiteas luach an "rogha" athraitheach ar athróg domhanda a fhéadfar a úsáid tar éis na hagóintí go léir a léamh.

Ciallaíonn na colúin sa optstring go bhfuil luachanna ag teastáil le haghaidh na bratacha comhfhreagracha. Sa sampla thuas, tá colon ag gach bratach: "u: d: p: f:". Ciallaíonn sé sin, ní mór luach a bheith ag gach bratach. Más rud é, mar shampla, nach raibh luach ag na bratacha "d" agus "f", b'fhearr leis an rogha "u: dp: f".

Tá colon go hiomlán difriúil ag colon an tús an optstring, mar shampla ": u: d: p: f:". Ligeann sé duit bratacha a láimhseáil nach bhfuil ionadaíocht acu sa optstring. Sa chás sin, tá luach an athróg "rogha" leagtha síos go "?" agus tá luach "OPTARG" leagtha don bhratach gan choinne. Ligeann sé duit teachtaireacht earráide oiriúnach a chur ar an eolas ag úsáideoir an botúin.

Tugann getopts neamhaird d'argóintí nach bhfuil bratach roimh ré. Mura gcuirtear braiteacha a shonraítear sa optstring ar fáil nuair a ghlactar leis an script, ní tharlaíonn aon rud, mura ndéanann tú an cás seo a láimhseáil go speisialta i do chód. Is féidir aon argóintí nach láimhseáil géagáin a ghabháil leo fós leis na hathróga rialta $ 1, $ 2, etc.