Yuav ua li cas kom sib cav sib ceg mus rau Bash-Script

Commands, syntax thiab piv txwv

Koj tuaj yeem sau ntawv bash xws li tau hais tias nws tau txais cov lus pom meej thaum lub tsab xov tooj raug hu los ntawm kab lus txib. Qhov no yog siv thaum ib tsab ntawv yuav tsum ua haujlwm me ntsis sib txawv raws li qhov tseem ceeb ntawm cov tswv yim tsis sib tham (cov lus sib cav).

Piv txwv, koj tuaj yeem muaj ib tsab ntawv hu ua "stats.sh" uas ua haujlwm rau ib qho ntaub ntawv, xws li suav nws cov lus. Yog hais tias koj xav siv cov ntawv sau rau ntau cov ntaub ntawv, nws yog qhov zoo tshaj kom dhau lub npe cov npe ua kev sib cav, kom koj siv tau tib tsab ntawv rau tag nrho cov ntaub ntawv kom tiav. Piv txwv li, yog tias lub npe ntawm cov ntaub ntawv yuav tsum ua tiav yog "songlist", koj yuav tsum sau cov kab lus nram qab no:

tus kuv hlub koj songlist

Cov kev sib tw tau nkag hauv ib tsab ntawv uas siv cov nqi ntawm $ 1, $ 2, $ 3, thiab lwm yam., Qhov $ 1 hais txog qhov kev sib cav thawj zaug, $ 2 rau qhov kev sib cav thib ob, thiab ntxiv rau. Qhov no yog qhia txog ntawm qhov piv txwv nram no:

FILE1 = $ 1 wc $ FILE1

Rau kev nyeem tau, muab ib qho txawv txav nrog lub npe piav rau tus nqi ntawm qhov sib cav thawj zaug ($ 1), thiab tom qab ntawd ces hu rau lub suab seev suav ( wc ) ntawm qhov sib txawv ntawm no ($ FILE1).

Yog hais tias koj muaj cov kab lus sib txawv ntawm cov lus sib cav, koj siv tau qhov "$ @" variable, uas yog ib qho array ntawm tag nrho cov lus tsis. Qhov no txhais tau tias koj tuaj yeem siv lub voj voog mus rau txheej txheem txhua qhov, raws li hauv cov piv txwv nram qab no:

rau FILE1 nyob rau hauv \ "$ @ \" ua wc $ FILE1 ua

Ntawm no yog ib qho piv txwv ntawm kev hu ua tsab ntawv no nrog cov lus sib tham los ntawm kab lus qhia:

tus kuv hlub koj songlist1 songlist3

Yog tias qhov kev sib cav muaj qhov chaw, koj yuav tsum muab nws nrog cov quotes nkaus xwb. Piv txwv li:

mob kuv lub siab songlist 1 '' songlist 2 '' songlist 3 '

Nquag sau ib tsab ntawv xws li tus neeg siv tau twv tau hauv cov lus sib cav siv cov chij. Nrog cov txheej txheem chij, koj tuaj yeem ua qee yam ntawm cov lus xaiv teb tau.

Cia hais tias koj muaj ib tsab ntawv uas rov qab tau cov ntaub ntawv los ntawm cov ntaub ntawv raws li cov lus teev tseg, xws li "username", "hnub tim", thiab "khoom", thiab tsim cov lus tshaj tawm hauv "hom". Tam sim no koj xav sau koj tsab ntawv xwv kom koj tuaj yeem dhau rau hauv cov kev txwv no thaum tsab ntawv hu ua. Nws yuav zoo li no:

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

Bash ua rau qhov kev ua haujlwm nrog cov "kev pabcuam". Rau qhov piv txwv saum toj no, koj tuaj yeem siv cov kws kho mob raws li nram no:

Qhov no yog ib lub sijhawm ua haujlwm uas siv qhov kev siv "getopts" thiab ib qho hu ua "optstring", nyob rau hauv qhov no "u: d: p: f:", kom rov los sib cav. Lub sijhawm thaum lub voj voog ntawm txoj kev pom zoo, uas muaj tus chij uas siv tau los sib cav sib ceg, thiab muab cov lus sib cav rau qhov tus chij rau qhov "xaiv". Cov ntaub ntawv hais ces muab cov nqi ntawm qhov "variable" mus rau lub ntiaj teb uas txawv txav uas siv tau tom qab tag nrho cov nqe lus tau nyeem.

Cov pob zeb nyob hauv qhov muag pom tau tias qhov tseem ceeb yuav tsum muaj rau tus chij coj. Hauv qhov piv txwv saum toj no, txhua tus chij yuav ua raws li los ntawm ib nyuv: "u: d: p: f:". Qhov no txhais tau tias, txhua tus chij xav tau tus nqi. Yog tias, piv txwv li, cov cim "d" thiab "f" tsis xav kom muaj tus nqi, qhov muag yuav "u: dp: f".

Ib txoj hnyuv thaum pib ntawm kev pom zoo, piv txwv tias ": u: d: p: f:", muaj ntau lub ntsiab lus txawv. Nws tso cai rau koj siv tus chij uas tsis sawv cev rau hauv optstring. Nyob rau hauv cov ntaub ntawv qhov value ntawm tus "xaiv" kuj sib txawv yog teem rau "?" thiab tus nqi ntawm "OPTARG" yog teem rau tus chij tsis txhij. Qhov tso cai rau koj mus tso saib txoj kev yuam kev tsis zoo qhia rau tus neeg siv ntawm qhov yuam kev.

Kev sib ceg uas tsis tau ua dhau los ntawm ib tug chij raug tsis quav ntsej los ntawm kev sib tw. Yog hais tias tus cim tau teev nyob rau hauv optstring tsis muab thaum tsab ntawv hu ua, tsis muaj dab tsi tshwm sim, tshwj tsis yog tias koj tshwj xeeb yog lis cov ntaub ntawv no hauv koj cov cai. Txhua nqe lus tsis tau los ntawm getops tuaj yeem raug ntes nrog $ 1, $ 2, thiab lwm yam.