Bash Kung-Pagkatapos-Iba Pang Halimbawa

Bash If Then Else Example



Sa araling ito, makikita natin kung paano natin magagamit ang mga pahayag na If-Then-Else sa mga script na isinulat namin sa Bash. Ang mga pahayag na Kung-Pagkatapos-Iba pa ay isang kapaki-pakinabang na tool upang magbigay ng isang paraan upang tukuyin ang landas ng pagkilos ng isang script kapag natutugunan ang ilang mga kundisyon. Tingnan natin kung ano ang syntax para sa Kung-Pagkatapos-Iba pang mga pahayag:

kungIlang mga utos;
taposTHEN-CommANDS;
iba paIBA PANG-UTOS;
maging

Sa ipinakita na utos sa itaas, kung ang ilang mga utos ay napatunayan na totoo o ang katayuan sa pagbabalik ay napatunayan na 0, ang THEN-Command ay papatayin. Kung hindi ito ang kadahilanan, ang IBA PANG-utos ay naisakatuparan. Sa ILANG-utos, karaniwang ginagawa namin ang ilang paghahambing sa String o paghahambing ng halaga sa anyo ng mga integer. Maaari rin tayong gumawa ng maraming mga operasyon na nagsasangkot ng mga file. Tingnan natin ang ilang halimbawa ng mga pangunahing utos na ginagamit pangunahin kapag nagtatrabaho sa mga kundisyon batay sa file:







Pangunahin Kahulugan
[-to] Nagbabalik totoo kapag mayroon ang FILE.
[-b] Ibinabalik totoo kapag mayroon ang FILE at isang espesyal na file na block.
[-c] Nagbabalik totoo kapag mayroon ang FILE at isang espesyal na file na character.
[-d] Nagbabalik totoo kapag mayroon ang FILE at isang direktoryo.
[-At] Nagbabalik totoo kapag mayroon ang FILE.
[-f] Ibinabalik totoo kapag mayroon ang FILE at isang regular na file.
[-g] Magbabalik ng totoo kapag mayroon ang FILE at ang SGID bit nito ay nakatakda.
[-h] Nagbabalik totoo kapag mayroon ang FILE at isang simbolikong link.
[-k] Magbabalik ng totoo kapag mayroon ang FILE at ang malagkit na bit nito ay nakatakda.
[-p] Nagbabalik ng totoo kapag mayroon ang FILE at isang pinangalanang tubo (FIFO).
[-r] Nagbabalik ng totoo kapag mayroon ang FILE at nababasa.
[-s] Nagbabalik ng totoo kapag mayroon ang FILE at may sukat na mas malaki sa zero.
[-t] Nagbalik ng totoo kapag ang tagapaglarawan ng file na FD ay bukas at tumutukoy sa isang terminal.
[-u] Magbabalik ng totoo kapag mayroon ang FILE at ang SUID (itakda ang user ID) na bit ay naitakda.
[ -sa ] Nagbabalik ng totoo kapag mayroon ang FILE at nasusulat.
[-x] Ibinabalik totoo kapag mayroon ang FILE at naisakatuparan.
[-O] Nagbabalik totoo kapag mayroon ang FILE at pagmamay-ari ng mabisang user ID.
[-G] Nagbabalik totoo kapag mayroon ang FILE at pagmamay-ari ng mabisang pangkat ng ID.
[-THE] Nagbabalik totoo kapag mayroon ang FILE at isang simbolikong link.
[-N] Nagbabalik ng totoo kapag mayroon ang FILE at nabago mula nang huli itong basahin.
[-S] Nagbabalik ng totoo kapag mayroon ang FILE at isang socket.

Ang THEN-CommANDS at ang ELSE-Command ay maaaring maging anumang wastong pagpapatakbo ng UNIX o anumang maipapatupad na programa. Tandaan na ang tapos at maging Ang mga utos ay pinaghihiwalay ng semi-kolon dahil itinuturing nilang ganap na magkakahiwalay na mga elemento ng isang iskrip.



Kung-Pagkatapos-Iba Pang Simpleng Halimbawa

Simulan natin ang ating aralin sa isang napakasimpleng halimbawa sa mga pahayag na If-Then-Else.
Narito ang isang sample na programa:



Kung Halimbawa

Kung Halimbawa





Narito ang output na nakikita natin kapag pinatakbo namin ang aming script:

$. ifelse1.sh
Ang mga halaga ay pareho!
$

Paggamit ng mga argumento sa linya ng utos

Maaari din naming gamitin ang mga argumento ng linya ng utos sa aming mga script at gamitin ang bilang ng mga argumento at ang mga halaga mismo bilang isang kundisyon sa IF na tinukoy naming kahulugan. Una naming tinukoy ang isang text file na may sumusunod na nilalaman:



Ang pangalan ko ay LinuxHint. Gustung-gusto ko ang mga server, lalo na ang mga Ubuntu. Ganun sila
terminalish!

Ngayon, maaari kaming magsulat ng isang script na mahahanap kung ang isang salita ay nangyayari sa isang text file o hindi. Tukuyin natin ang script ngayon:

itinapon 'Paghanap ng $ 1 sa $ 2'
mahigpit na pagkakahawak $ 1 $ 2
kung [ $? -nanganak 0 ]
tapos
itinapon '$ 1 hindi nahanap sa file na $ 2.'
iba pa
itinapon '$ 1 ang natagpuan sa file na $ 2.'
maging
itinapon 'Nakumpleto ang script.'

Napakabago ng script na ito. Isinasaalang-alang nito ang salitang mahahanap at ang file upang maghanap mula mismo sa command-line. Ngayon, handa na naming patakbuhin ang aming script:

. ifelse2.sh love hello.txt

Makakakita kami ng isang output tulad ng:

Paghanap ng pag-ibigsahello.txt
natagpuan ang pag-ibigsa filehello.txt.
Nakumpleto ang script.

Sinusuri ang bilang ng mga argumento sa linya ng utos

Sa loob ng pahayag na KUNG, maaari nating suriin kung gaano karaming mga argumento sa linya ng utos ang naipasa sa utos upang makagawa tayo ng pareho:

bilangin=$ #
kung [ ! $ count -gt 1 ]
tapos
itinapon 'Hindi sapat na mga argumento'
iba pa
itinapon 'Magaling!'
maging

Patakbuhin natin ang script na ito ngayon, makikita natin ang sumusunod na output:

Mga argumento sa linya ng utos

Mga argumento sa linya ng utos

Kung-Pagkatapos-Elif-Iba Pang Pahayag

Maaari rin kaming magkaroon ng maraming mga pahayag na KUNG sa parehong bloke upang mapaliit ang landas ng desisyon na dadalhin ng aming programa upang magpatupad ng mga utos na tinukoy namin. Narito ang syntax upang tukuyin ang maraming mga pahayag na KUNG sa aming mga script:

kungPAGSUSULIT NG MGA UTOS;
tapos
RESULTA-UTOS;
elif
IBA PANG-utos;
tapos
IBA PANG RESULTA-UTOS;
iba pa
ALVERATE-UTOS;
maging

Mukha itong pamilyar at madaling sundan din. Tukuyin natin ang isang simpleng halimbawa upang maitaguyod kung paano gumagana ang puno:

bilangin=$ #
kung [ $ count -eq 1 ]
tapos
itinapon 'Isang argument lang ang natagpuan.'
elif [ $ count -eq 2 ]
tapos
itinapon 'Mas mabuti, natagpuan ang dalawang argumento.'
iba pa
itinapon 'Magandang trabaho, maraming mga argumento ang nahanap!'
maging

Narito kung ano ang babalik sa utos na ito:

Kung pagkatapos Elif Else halimbawa

Kung pagkatapos Elif Else halimbawa

Paggamit ng mga staement ng kaso

Ang mga pahayag na KUNG KUNG IBA ay kapaki-pakinabang kapag mayroon kang isang malaking listahan ng mga pagpipilian na kailangan mong magpasya. Ngunit kung sakaling nais mong magsagawa ng isang aksyon sa ilang mga kaso lamang ng eksaktong tugma sa resulta, maaari kaming gumamit ng mga pahayag ng KASO sa mga script ng Bash din. Ang syntax nito ay parang:

kasoPAGPAPAHAYAGsaKASO1)MGA UTOS-SA-EKSEKULO;
KASYA2)MGA UTOS-SA-EKSEKULO;
KASYA2)MGA UTOS-SA-EKSEKULO;
...)MGA UTOS-SA-EKSEKULO;
*)MGA UTOS-SA-EKSEKULO;
esac

Ang huling kaso na may * ay gumaganap bilang default na kaso at papatayin kapag wala sa mga natukoy na kaso na natagpuan na maging isang tugma.

Mabilis tayong bumuo ng isang simpleng halimbawa gamit ang mga pahayag ng CASE:

kaso '$ 1' sa
1)
itinapon 'Ang halaga ay 1.'
;;
2)
itinapon 'Ang halaga ay 2.'
;;
3)
itinapon 'Halaga ay 3.'
;;
*)
itinapon 'Naipasa ang ibang halaga.'
esac

Ang bawat pahayag ng KASO ay winakasan ng ;; (doble na semi-colon mark). Narito kung ano ang babalik sa utos na ito:

Halimbawa ng Kaso

Halimbawa ng Kaso

Konklusyon

Sa araling ito, tiningnan namin kung paano namin magagamit ang mga pahayag ng IF-ELSE, IF-THEN-ELIF at CASE sa mga script na Bash na tinukoy namin upang gumawa ng mga tukoy na aksyon batay sa mga halagang mayroon sa aming mga programa o ipinasa ng gumagamit na gumagamit ng posisyonal mga parameter