Gamit ang if...else statement sa Bash para sa conditional code execution.
Ang Bash (Bourne Again Shell) ay isang shell command prompt at scripting language sa GNU/Linux operating system. Ito ang default na shell para sa karamihan ng mga distribusyon ng Linux.
Ang mga kondisyon na pahayag ay mahalaga sa anumang programming language, pinagsama-sama pati na rin ang script. Hinahayaan nila ang user na magsagawa ng isang piraso ng code batay sa isang paunang natukoy na kondisyon, na isa sa mga pundasyon ng logic ng programming. Sa artikulong ito, matututunan natin kung paano gamitin ang kung hindi
kondisyon na pahayag sa Bash.
Panimula
Ang kung hindi
Ang pahayag sa Bash ay nagbibigay-daan sa gumagamit na manipulahin ang daloy ng code batay sa mga kundisyon. Maaaring tukuyin ng user ang hiwalay na mga bloke ng code na isasagawa, isa lamang sa mga ito ang sa wakas ay maipapatupad sa panahon ng runtime, batay sa kaukulang kundisyon na nasiyahan.
Tandaan na, higit sa dalawang kundisyon ang maaaring tukuyin, kung saan elif
maaaring gamitin ang pahayag. Maaaring magbigay ang user ng anumang bilang ng mga kundisyon gamit elif
, at sa wakas ay isang default na kundisyon gamit ang iba pa
harangan. Tingnan natin ang higit pa tungkol dito sa syntax at mga halimbawa sa ibaba.
Pangkalahatang Syntax
Ang pangkalahatang syntax para sa kung hindi
pahayag sa Bash ay:
kung noon iba pa fi
Dito, kung ang satisfies, ibig sabihin, kung nagbabalik ito ng 0 (tagumpay), pagkatapos ay ipapatupad ang code block 1. Kung ang kundisyon ay hindi nagbabalik ng 0, ibig sabihin, ito ay nagbabalik ng katayuan ng pagkabigo, pagkatapos ay ang code block 2 ay isasagawa. Ang
kung hindi
bloke ay nagtatapos sa a fi
pahayag.
Para sa maraming bloke na tumutugma sa maraming kundisyon,elif
Ginagamit:
kung noon elif noon elif noon ... ... iba pa fi
Dito, ang mga kondisyon ay sinuri sa pagkakasunud-sunod at ang code block ng unang kundisyon na nagbabalik ng katayuan 0 (tagumpay) ay naisakatuparan. Hal. kung Kung wala sa mga kundisyon ang nagbabalik ng katayuan 0, Tandaan na ang Upang magsagawa ng isang bloke ng code kung ang isang variable ay may partikular na halaga: Upang tingnan ang maramihang mga halaga: Ang mga kundisyon ay maaaring anumang mga utos ng Linux. Ang kaukulang bloke ng code ay isasagawa kung matagumpay na tumakbo ang command. Sa halimbawa sa itaas, dahil Maaari din tayong pugad ng isa pa Ito ay kapaki-pakinabang kapag ang isang hiwalay na hanay ng mga kundisyon ay susuriin kapag ang isang paunang kundisyon ay nasiyahan. Halimbawa, sinusubukan ng sumusunod na code na mag-install ng software ng web server: Sinusuri muna ng code kung naka-install na ang Nginx sa system. Kung ito ay, ito ay nagpapakita lamang ng isang mensahe at lalabas. Kung hindi, sinusubukan nitong i-install ang Nginx. Kung sa ilang kadahilanan, hindi mai-install ang Nginx sa system mula sa package, sinusubukan nitong i-install ang Apache2. Kung kahit na ang Apache2 ay nagbibigay ng error habang nag-i-install, lalabas ito sa pagpapakita ng isang mensahe na walang software na maaaring mai-install. Sa katulad na paraan, ang isang nested block ay maaaring gamitin sa loob ng isang Katulad ng anumang Bash code, ang Maaari ding i-save ng user ang code na ito sa isang script file at isagawa ang script file. Ang Upang magbigay ng mga pahintulot sa pagpapatupad para sa file na ito, patakbuhin ang: Sa wakas, upang maisagawa ang file, patakbuhin ang: Katulad ng anumang programming language, nagbabalik ng hindi zero na katayuan (pagkabigo), pagkatapos
ay sinusuri. Kung
ibinabalik ang katayuan 0,
ay pinaandar. Pagkatapos nito, hindi na susuriin ang mga karagdagang kundisyon at ang code execution ay magpapatuloy sa code pagkatapos ng
fi
pahayag. sa ibang bloke ay naisakatuparan. Tandaan na ang iba pang bloke ay opsyonal. Kung walang kundisyon ang natutugunan, gayundin ang hindi
iba pa
block ay tinukoy, walang conditional code block ang tatakbo, at ang code execution ay magpapatuloy sa code pagkatapos ng fi
pahayag, tulad ng ipinapakita sa flowgraph sa ibaba.pagkatapos
ang pahayag ay gagamitin lamang pagkatapos kung
at elif
mga pahayag at hindi kinakailangan pagkatapos ng iba pa
pahayag.Mga halimbawa
x=0 kung [ $x -eq 0 ] pagkatapos ay i-echo ang "Value ng X ay 0" kung hindi, echo ang "Halaga ng X ay hindi 0" fi
x=2 kung [ $x -eq 0 ] pagkatapos ay i-echo ang "Halaga ng X ay 0" elif [ $x -eq 1 ] pagkatapos ay i-echo ang "Halaga ng X ay 1" elif [ $x -eq 2 ] pagkatapos ay i-echo ang "Halaga ng Ang X ay 2" iba pang echo "Ang halaga ng X ay hindi 0" fi
kung npm -v pagkatapos ay echo ang "NPM na naroroon sa system" kung hindi sudo apt install npm fi
npm
ay hindi naka-install sa system, ang command npm -v
nagbalik ng status na hindi zero. Samakatuwid, ang pagpapatupad ng code ay pumasok sa iba pa
block, kung saan nag-install kami ng npm gamit ang apt
manager ng package. Tulad ng nakikita natin, sinenyasan ako nitong ipasok ang password at sinimulan ang pag-install ng npm.kung hindi
harangan sa loob ng isang kung
, iba pa
o elif
harangan:x=0 y=1 kung [ $x -eq 0 ] pagkatapos ay i-echo ang "X ay 0" kung [ $y -eq 1 ] pagkatapos ay i-echo ang "Y ay 1" iba pa echo "Y ay hindi 1" sa ibang pagkakataon echo "X ay hindi 0" fi
kung nginx -v pagkatapos ay echo "Naka-install na ang NGINX." iba kung sudo apt install nginx pagkatapos ay echo "NGINX installation successful." elif sudo apt install apache2 pagkatapos ay i-echo ang "APACHE2 installation successful." else echo "Hindi ma-install ang anumang web software." fi
elif
block din.Isinasagawa
kung hindi
: Mga Script at Command Linekung hindi
Ang pahayag ay maaaring gamitin sa Bash shell nang direkta o mula sa isang executable na shell script file. Kapag nahanap na ng Bash interpreter ang isang kung
, iba pa
o elif
pahayag, ipinagpapatuloy nito ang shell upang hayaan ang gumagamit na ipasok ang bloke ng code.#!/bin/bash
sa simula ay tumutukoy sa interpreter na gagamitin kapag ang file ay naisakatuparan. Bagama't ang Bash ang pinakakaraniwang ginagamit na shell sa ngayon, mas gusto ng ilang user ang mga shell tulad ng zsh, na dapat na tukuyin bilang kapalit ng bash sa simula ng file na ito.chmod +x test.sh
./test.sh
Konklusyon
kung hindi
Ang pahayag ay isang pangunahing tampok ng Bash. Ang pag-aaral ng paggamit nito ay napupunta sa mahabang paraan sa pagsulat ng basic pati na rin ang mga advanced na script.