Bash 'if else' Statement: Tutorial at Mga Halimbawa

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 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.

Kung wala sa mga kundisyon ang nagbabalik ng katayuan 0, 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.

Tandaan na ang pagkatapos ang pahayag ay gagamitin lamang pagkatapos kung at elif mga pahayag at hindi kinakailangan pagkatapos ng iba pa pahayag.

Mga halimbawa

Upang magsagawa ng isang bloke ng code kung ang isang variable ay may partikular na halaga:

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

Upang tingnan ang maramihang mga halaga:

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

Ang mga kundisyon ay maaaring anumang mga utos ng Linux. Ang kaukulang bloke ng code ay isasagawa kung matagumpay na tumakbo ang command.

kung npm -v pagkatapos ay echo ang "NPM na naroroon sa system" kung hindi sudo apt install npm fi

Sa halimbawa sa itaas, dahil 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.

Maaari din tayong pugad ng isa pa 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

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:

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

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 elif block din.

Isinasagawa kung hindi: Mga Script at Command Line

Katulad ng anumang Bash code, ang kung 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.

Maaari ding i-save ng user ang code na ito sa isang script file at isagawa ang script file.

Ang #!/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.

Upang magbigay ng mga pahintulot sa pagpapatupad para sa file na ito, patakbuhin ang:

chmod +x test.sh

Sa wakas, upang maisagawa ang file, patakbuhin ang:

./test.sh

Konklusyon

Katulad ng anumang programming language, 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.