Kumaha Pas Alesan ka Bash-Script

Paréntah, rumpaka na conto

Anjeun tiasa nulis Aksara bash sapertos nu eta narima alesan dieusian nalika naskah disebut tina garis paréntah. Metoda ieu dipake lamun naskah boga nedunan fungsi rada beda gumantung kana nilai parameter input (dalil).

Contona, anjeun bisa boga Aksara disebut "stats.sh" anu ngalakukeun operasi husus dina hiji payel, kayaning cacah kecap na. Lamun hayang bisa ngagunakeun Aksara anu aya dina loba payil, éta pangalusna maot nami file salaku hiji argumen, ku kituna anjeun bisa nganggo Aksara sarua pikeun sakabéh payil diolah. Contona, lamun ngaran file pikeun diolah téh "songlist", anjeun bakal asupkeun garis paréntah di handap:

sh stats.sh songlist

Alesan nu diakses jero hiji Aksara ngagunakeun variabel $ 1, $ 2, $ 3, jsb, dimana $ 1 nujul kana argumen heula, $ 2 kana argumen kadua, jeung saterusna. Ieu gambar dina conto di handap:

FILE1 = $ 1 WC $ FILE1

Pikeun readability, napelkeun variabel kalayan ngaran deskriptif kana nilai tina argumen munggaran ($ 1), lajeng nyauran count Kecap utiliti ( WC ) kana variabel ieu ($ FILE1).

Upami Anjeun gaduh jumlah variabel sahiji alesan, anjeun tiasa nganggo "$ @" variable nu mangrupa Asép Sunandar Sunarya sadaya parameter input. Ieu ngandung harti bisa ngagunakeun pikeun-loop mun iteratively ngolah tiap hiji, sakumaha gambar dina conto di handap ieu:

pikeun FILE1 di "$ @" ngalakukeun WC $ FILE1 Puguh

Di handap ieu conto tina cara nelepon naskah kalawan alesan tina garis paréntah:

sh stats.sh songlist1 songlist2 songlist3

Mun hiji argumen boga spasi, Anjeun kedah ngalampirkeun eta kalawan tanda petik tunggal. Salaku conto:

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

Remen naskah ieu ditulis misalna yén pamaké bisa lulus dina alesan dina sagala urutan nganggo umbul. Jeung métode umbul, Anjeun ogé tiasa nyieun sababaraha alesan pilihan.

Hayu nyebutkeun anjeun gaduh naskah anu retrieves informasi ti database dumasar kana parameter dieusian, kayaning "landihan", "titimangsa", sarta "produk", jeung dibangkitkeun laporan dina "format" dieusian. Ayeuna rék nulis naskah anjeun ku kituna anjeun bisa lulus dina parameter ieu lamun naskah disebut. Ieu bisa jadi kasampak kawas kieu:

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

Bash nyandak fungsionalitas kieu jeung fungsi "getopts". Pikeun conto di luhur, Anjeun bisa make getopts saperti kieu:

Ieu bari-loop anu ngagunakeun "getopts" fungsi sarta disebut "optstring", dina hal ieu "u: d: p: f:", mun iterate ngaliwatan dalil. Bari-loop walks ngaliwatan optstring, nu ngandung umbul nu bisa dipaké pikeun lulus alesan, sarta nangtukeun nilai argumen disadiakeun pikeun nu bendera kana variabel "pilihan". Kasus-pernyataan lajeng nangtukeun nilai variabel "pilihan" pikeun variabel global nu bisa dipaké sanggeus sagala alesan geus maca.

The colons di optstring mean nu nilai nu diperlukeun pikeun umbul alkana. Dina conto di luhur sadayana umbul anu dituturkeun ku titik hiji: "u: d: p: f:". Ieu ngandung harti, sadaya umbul peryogi nilai a. Lamun, contona, anu "d" na "f" umbul teu diperkirakeun gaduh nilai a, optstring bakal "u: dp: f".

Hiji titik dina awal optstring, contona ": u: d: p: f:", boga harti sagemblengna béda. Eta ngidinan Anjeun pikeun nanganan umbul nu teu digambarkeun dina optstring nu. Bisi yén nilai tina "pilihan" variable disetel ka "?" jeung ajén "OPTARG" disetel ka bendera kaduga. The ngidinan Anjeun pikeun nembongkeun pesen kasalahan cocok informing pamaké tina kasalahan teh.

Alesan nu teu dimimitian ku bandéra hiji nu dipaliré ku getopts. Mun umbul dieusian di optstring nu teu disadiakeun lamun naskah disebut, euweuh kajadian, iwal mun husus nanganan hal ieu dina kode Anjeun. Naon alesan teu diatur ku getops masih bisa direbut ku nu biasa $ 1, $ 2, jsb variabel.