Nzira Yokupfuura Nharo NeBash-Script

Mirairo, syntax uye mienzaniso

Iwe unogona kunyora bash script zvakadai kuti inogamuchira nharo dzinotsanangurwa apo script inodanwa kubva murairo wemirairo. Iyi nzira inoshandiswa apo script inofanira kuita basa rakasiyana zvakasiyana zvichienderana nehutano hwemasayenzi ekushandisa (aya maonero).

Semuenzaniso, unogona kunge une script inonzi "stats.sh" iyo inoita kushanda kumwe pane faira, sekuverenga mazwi ayo. Kana iwe uchida kukwanisa kushandisa script iyo pane dzakawanda mafaira, zvakanakisisa kupfuudza zita refaira senharo, kuitira kuti ugone kushandisa script imwe chete yefaira dzose dzinofanira kushandiswa. Somuenzaniso, kana zita refaira richizogadziriswa "rwiyo rwekunyora", iwe unopinda mutsetse wemirairo unotevera:

sh stats.sh songlist

Nhaurirano dzinowanikwa mukati me script uchishandisa zvinyorwa $ 1, $ 2, $ 3, nezvimwewo, apo $ 1 inoreva mhirizhonga yokutanga, $ 2 kusvika kumagariro echipiri, nezvimwe zvakadaro. Izvi zvinoratidzwa mumuenzaniso unotevera:

FILE1 = $ 1 wc $ FILE1

Kuverenga, ita zvinoshandiswa nezita rinotsanangurwa kune kukosha kwekambani yekutanga ($ 1), uye wodana zita rokuti count utility ( wc ) pane iri shanduko ($ FILE1).

Kana uine nhamba yakasiyana-siyana yemafungiro, unogona kushandisa shanduro ye "$ @", iyo inowanikwa yezvikamu zvose zvekupinza. Izvi zvinoreva kuti iwe unogona kushandisa ye-loop kuti iteratively iite chimwe nechimwe, sezvinoratidzwa mumuenzaniso unotevera:

yeFILE1 mu "$ @" do wc $ FILE1 yakaitwa

Heano muenzaniso wekudana iyi script nemakakatanwa kubva kumurongo wemirairo:

sh stats.sh songlist1 songlist2 songlist3

Kana kukakavara kuchiine nzvimbo, unofanirwa kuidzika nemashoko ari oga. Semuyenzaniso:

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

Kazhinji script yakanyorwa zvakadai zvokuti mushandisi anogona kupfuurira mune nharo chero ipi zvayo kuronga kushandisa mareza. Uine mareza, iwe unogonawo kuita zvimwe zvekuita sarudzo.

Rega kuti iwe une script inowana mashoko kubva kune dhesiyo zvichienderana nemiganhu yakatarwa, yakadai se "zita rekushandisa", "zuva", uye "chigadzirwa", uye rinopa mushumo mune imwe "format" yakarondedzerwa. Iye zvino unoda kunyora script yako kuitira kuti iwe ugone kudarika mumitemo iyo script inodanwa. Inogona kutarisa seyiyi:

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

Bash inoita kuti izvi zviitwe ne "getopts" basa. Pamusoro pemuenzaniso uri pamusoro apa, unogona kushandisa getopts nenzira inotevera:

Iyi inguva -loop iyo inoshandisa "getopts" basa uye anonzi "optstring", munyaya ino "u: d: p: f:", kuti udzokere kuburikidza nharo. Iyo nguva-loop inofamba ichienda ne optstring, iyo ine mareza anokwanisa kushandiswa kudarika nharo, uye anopa nharo yakakosha inowanikwa iyo mureza kune "variable" inoshandiswa. Mhosva-iyo inogovera kukosha kwechirevo che "sarudzo" kune shanduko yepasi rose inogona kushandiswa mushure mokunge mhinduro dzave dzichiverengwa.

VaKoloni mu optstring zvinoreva kuti tsika dzinodiwa pamapurgiki anowirirana. Mumuenzaniso wepamusoro mapegi ose anoteverwa nekoloni: "u: d: p: f:". Izvi zvinoreva, mapegi ose anoda kukosha. Kana, semuenzaniso, ma "d" uye "f" mapuranga akanga asingatarisirwi kuti ave nenhamba, optstring ingadai iri "u: dp: f".

A colon pakutanga kwe optstring, somuenzaniso ": u: d: p: f:", ine zvakasiyana zvakasiyana. Iko inokubvumira kubata mabhigi asina kumiririrwa mu optstring. Muchiitiko ichocho kukosha kwe "sarudza" kushanduka kunoshandiswa ku "?" uye kukosha kwe "OPTARG" yakagadzirirwa kune mureza usina kutarisirwa. Iko inokubvumira kuti uratidze mhosho yakakanganisika yemharidzo uchizivisa mushumiri wekanganiso.

Nharo dzisina kutungamirirwa nemureza dzinoregererwa ne getopts. Kana mareza akarondedzerwa mu optstring haatauri apo script inodanwa, hapana chinoitika, kunze kwekuti iwe ukanyatsobata nyaya iyi mumutsetse wako. Mhedziso chero ipi zvayo isingatariswi neetsops inogona kuendeswa ne $ 1, $ 2, nezvimwe zvinoshandiswa.