Kon Unsaon Pagsalibay ang mga Pangatarungan sa usa ka Bash-Script

Mga sugo, syntax ug mga ehemplo

Mahimo mo isulat ang script sa bash sa ingon nga kini makadawat og mga argumento nga gitino sa diha nga ang script gitawag gikan sa command line. Kini nga pamaagi gigamit kung ang usa ka script kinahanglan nga ipahigayon ang usa ka gamay nga lain-laing mga function depende sa mga bili sa input parameter (ang mga argumento).

Pananglitan, adunay usa ka script nga gitawag og "stats.sh" nga naghimo sa usa ka partikular nga operasyon sa file, sama sa pag-ihap sa mga pulong niini. Kon gusto nimo nga magamit ang script sa daghang mga file, mas maayo nga ipasa ang ngalan sa file isip usa ka argumento, aron mahimo nimong gamiton ang sama nga script sa tanang mga file nga maproseso. Pananglitan, kon ang ngalan sa file nga iproseso mao ang "songlist", mahimo ka mosulod sa mosunod nga linya sa sugo:

sh stats.sh songlist

Ang mga pangatarungan anaa sa sulod sa usa ka script gamit ang mga variable nga $ 1, $ 2, $ 3, ug uban pa, diin ang $ 1 nagtumong sa unang argumento, $ 2 ngadto sa ikaduha nga argumento, ug uban pa. Giilustrar kini sa mosunod nga pananglitan:

FILE1 = $ 1 wc $ FILE1

Aron mabasa, ibutang ang usa ka variable nga adunay usa ka descriptive nga ngalan ngadto sa bili sa unang argumento ($ 1), ug dayon tawga ang word count utility ( wc ) sa niini nga variable ($ FILE1).

Kon adunay usa ka variable nga gidaghanon sa mga argumento, mahimo nimong gamiton ang variable nga "$ @", nga usa ka han-ay sa tanan nga mga parameter nga input. Nagpasabot kini nga mahimo nimo gamiton ang for-loop sa pag-proseso sa matag usa, ingon sa gihulagway sa mosunod nga pananglitan:

kay FILE1 sa "$ @" nahimo ang wc $ FILE1 nga nahuman

Ania ang usa ka pananglitan kon unsaon pagtawag kini nga script sa mga argumento gikan sa command line:

sh stats.sh songlist1 songlist2 songlist3

Kung ang usa ka argumento dunay mga luna, kinahanglang ilakip nimo kini nga adunay mga single quotes. Pananglitan:

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

Kasagaran ang usa ka sinulat gisulat sa ingon nga ang tiggamit makasulod sa mga argumento sa bisan unsang han-ay nga gamit ang mga bandila. Uban sa mga pamaagi sa mga bandila, mahimo usab nimo ang pipila ka mga argumento nga opsyonal.

Himoa nga ang pag-ingon nga ikaw adunay usa ka script nga nagakuha sa impormasyon gikan sa usa ka database nga gipasukad sa gitino nga mga parameter, sama sa "username", "date", ug "produkto", ug magpatunghag usa ka report sa usa ka piho nga "format". Karon gusto nimong isulat ang imong script aron imong mapasa kini nga mga parameter kung ang tawag sa script. Mahimong ingon kini:

magbubuhat -u jsmith -p nga mga notebook -d 10-20-2011 -f pdf

Ang Bash nakahimo niini nga gamit sa "getopts" function. Alang sa mga pananglitan sa ibabaw, mahimo nimong gamiton ang mga bangag sa mosunod:

Kini usa ka loop nga naggamit sa "getopts" function ug usa ka gitawag nga "optstring", sa niini nga kaso "u: d: p: f:", aron maulian ang mga argumento. Ang bari-loop naglakaw pinaagi sa optstring, nga naglangkob sa mga bandila nga mahimong gamiton sa pagpasa sa mga argumento, ug mag-assign sa argumento nga gitagana alang sa flag ngadto sa variable nga "opsyon". Ang kaso-pahayag dayon mag-assign sa bili sa variable nga "opsyon" ngadto sa usa ka global variable nga mahimong magamit human ang tanan nga mga argumento gibasa.

Ang mga colon sa optstring nagpasabot nga ang mga bili gikinahanglan alang sa katugbang nga mga bandila. Sa pananglitan sa ibabaw ang tanan nga mga bandila gisundan sa usa ka colon: "u: d: p: f:". Kini nagpasabot nga ang tanan nga mga bandila nagkinahanglan og bili. Kon, pananglitan, ang mga "d" ug "f" mga bandila wala gilauman nga adunay bili, ang optstring mahimong "u: dp: f".

Usa ka colon sa sinugdanan sa optstring, pananglitan ": u: d: p: f:", adunay usa ka hingpit nga nagkalainlain nga kahulogan. Nagtugot kini kanimo sa pagdumala sa mga bandera nga wala girepresentahan sa optstring. Niana nga kahimtang ang bili sa variable nga "kapilian" gibutang sa "?" ug ang bili sa "OPTARG" gibutang sa wala damha nga bandila. Ang nagtugot kanimo sa pagpakita sa usa ka angay nga mensahe sa sayup nga nagpahibalo sa user sa sayop.

Ang mga pangatarungan nga wala nag-una sa usa ka bandila wala panumbalinga sa mga kagaw. Kon ang mga bandila nga gitino sa optstring wala gihatag kung ang script gitawag, wala'y mahitabo, gawas kung imong gipugos ang kaso sa imong code. Ang bisan unsang argumento nga wala pagdumala pinaagi sa mga getop mahimo gihapon makuha sa regular nga $ 1, $ 2, uban pa nga mga variable.