Bashin if…else-käskyn käyttö ehdollisen koodin suorittamiseen.
Bash (Bourne Again Shell) on komentotulkin komentokehote ja komentosarjakieli GNU/Linux-käyttöjärjestelmissä. Se on oletuskuori useimmille Linux-jakeluille.
Ehdolliset lausunnot ovat elintärkeitä kaikilla ohjelmointikielellä, sekä käännettynä että käsikirjoitettuna. Ne antavat käyttäjän suorittaa koodinpalan ennalta määrätyn ehdon perusteella, mikä on yksi ohjelmointilogiikan perusta. Tässä artikkelissa opimme käyttämään tai muuten
ehdollinen lause Bashissa.
Johdanto
The tai muuten
Bashin lausekkeen avulla käyttäjä voi muokata koodikulkua olosuhteiden perusteella. Käyttäjä voi määrittää suoritettavat erilliset koodilohkot, joista vain yksi suoritetaan lopulta ajon aikana, riippuen vastaavasta ehdosta, joka täyttyy.
Huomaa, että voidaan määrittää enemmän kuin kaksi ehtoa, joille elif
lausuntoa voidaan käyttää. Käyttäjä voi antaa minkä tahansa määrän ehtoja käyttämällä elif
, ja lopuksi oletusehto, jossa käytetään muu
lohko. Katsotaanpa tästä lisää alla olevassa syntaksissa ja esimerkeissä.
Yleinen syntaksi
Yleinen syntaksi kohteelle tai muuten
Bashissa oleva lausunto on:
jos sitten muu fi
Täällä, jos tyydyttää, eli jos se palauttaa 0 (onnistuminen), koodilohko 1 suoritetaan. Jos ehto ei palauta arvoa 0, eli se palauttaa virhetilan, koodilohko 2 suoritetaan. The
tai muuten
lohko päättyy kirjaimeen a fi
lausunto.
Jos useat lohkot vastaavat useita ehtoja,elif
käytetään:
jos sitten elif siis elif siis ... ... muuta fi
Täällä ehdot tarkistetaan järjestyksessä ja ensimmäisen ehdon koodilohko, joka palauttaa tilan 0 (onnistuminen), suoritetaan. Esim. jos Jos mikään ehdoista ei palauta tilaa 0, Huomaa, että Suorittaaksesi koodilohkon jos muuttujalla on tietty arvo: Useiden arvojen tarkistaminen: Edellytykset voivat olla mitä tahansa Linux-komentoja. Vastaava koodilohko suoritetaan, jos komento suoritetaan onnistuneesti. Yllä olevassa esimerkissä, koska Voimme myös pestä toisen Tämä on hyödyllistä, kun erillinen ehtojoukko on tarkistettava, kun alkuehto on täytetty. Esimerkiksi seuraava koodi yrittää asentaa verkkopalvelinohjelmiston: Koodi tarkistaa ensin, onko Nginx jo asennettu järjestelmään. Jos on, se vain näyttää viestin ja poistuu. Jos ei, se yrittää asentaa Nginxin. Jos Nginxiä ei jostain syystä voitu asentaa järjestelmään paketista, se yrittää asentaa Apache2:n. Jos jopa Apache2 antaa virheen asennuksen aikana, se poistuu näyttäen viestin, että ohjelmistoa ei voitu asentaa. Samalla tavalla sisäkkäistä lohkoa voidaan käyttää sisällä Samanlainen kuin mikä tahansa Bash-koodi, Käyttäjä voi myös tallentaa tämän koodin komentosarjatiedostoon ja suorittaa komentosarjatiedoston. The Anna suoritusoikeudet tälle tiedostolle suorittamalla: Suorita lopuksi tiedosto suorittamalla: Kuten mikä tahansa ohjelmointikieli, palauttaa nollasta poikkeavan tilan (virhe), sitten
on tarkistettu. Jos
palauttaa tilan 0,
teloitetaan. Tämän jälkeen muita ehtoja ei tarkisteta ja koodin suoritus jatkuu koodin jälkeen
fi
lausunto. muussa lohkossa suoritetaan. Huomaa, että else-lohko on valinnainen. Jos mikään ehto ei täyty, samoin kuin ei
muu
lohko on määritetty, mitään ehdollista koodilohkoa ei suoriteta, ja koodin suoritus jatkuu koodille sen jälkeen fi
lauseke alla olevan vuokaavion mukaisesti.sitten
lauseketta tulee käyttää vasta sen jälkeen jos
ja elif
lausuntoja eikä vaadita sen jälkeen muu
lausunto.Esimerkkejä
x=0 jos [ $x -eq 0 ] sitten echo "X:n arvo on 0" muuten kaiku "X:n arvo ei ole 0" fi
x=2 jos [ $x -eq 0 ] sitten toista "X:n arvo on 0" elif [ $x -eq 1 ] sitten toista "X:n arvo on 1" elif [ $x -eq 2 ] sitten toista "arvo X on 2" muuten echo "X:n arvo ei ole 0" fi
jos npm -v sitten kaiu "NPM läsnä järjestelmässä" muuten sudo apt install npm fi
npm
ei asennettu järjestelmään, komento npm -v
palautti ei-nolla-tilan. Siksi koodin suoritus meni muu
lohko, johon asennamme npm käyttämällä apt
paketin hallinta. Kuten näemme, se kehotti minua antamaan salasanan ja aloitti npm:n asennuksen.tai muuten
lohko sisällä jos
, muu
tai elif
lohko:x=0 y=1 jos [ $x -eq 0 ] niin kaiku "X on 0" jos [ $y -eq 1 ] sitten kaiku "Y on 1" muuten kaiku "Y ei ole 1" fi else echo "X on ei 0" fi
jos nginx -v niin echo "NGINX on jo asennettu." muuten, jos sudo apt install nginx, toista "NGINX-asennus onnistui". elif sudo apt install apache2 sitten echo "APACHE2 asennus onnistui." else echo "Mitään verkkoohjelmistoa ei voi asentaa." fi
elif
myös lohko.Suoritetaan
tai muuten
: Skriptit ja komentorivitai muuten
-lausetta voidaan käyttää Bash-shellissä suoraan tai suoritettavasta komentotulkin komentosarjatiedostosta. Kun Bash-tulkki löytää jos
, muu
tai elif
lauseke, se jatkaa komentotulkkia antaakseen käyttäjän kirjoittaa koodilohkoon.#!/bin/bash
alussa määrittää tulkin, jota käytetään, kun tiedosto suoritetaan. Vaikka Bash on yleisimmin käytetty komentotulkki nykyään, jotkut käyttäjät pitävät enemmän zsh:n kaltaisista komentotulkeista, jotka tulisi määrittää bashin tilalle tämän tiedoston alussa.chmod +x test.sh
./test.sh
Johtopäätös
tai muuten
lausunto on Bashin perusominaisuus. Sen käytön oppiminen menee pitkälle niin perus- kuin edistyneiden skriptien kirjoittamisessa.