Korištenje if...else izraza u Bashu za uvjetno izvršavanje koda.
Bash (Bourne Again Shell) je naredbeni redak ljuske i skriptni jezik u GNU/Linux operativnim sustavima. To je zadana ljuska za većinu Linux distribucija.
Uvjetni izrazi su od vitalnog značaja u svakom programskom jeziku, kompajlirani kao i skriptirani. Oni dopuštaju korisniku da izvrši dio koda na temelju unaprijed definiranog uvjeta, što je jedan od temelja programske logike. U ovom članku ćemo naučiti kako koristiti ako... inače
uvjetna izjava u Bashu.
Uvod
The ako... inače
izjava u Bashu omogućuje korisniku da manipulira tijekom koda na temelju uvjeta. Korisnik može odrediti zasebne blokove koda koji će se izvršavati, od kojih će se samo jedan konačno izvršiti tijekom izvođenja, na temelju odgovarajućeg uvjeta koji je zadovoljen.
Imajte na umu da se može navesti više od dva uvjeta, za koje elif
izjava se može koristiti. Korisnik može dati bilo koji broj uvjeta koristeći elif
, i konačno zadani uvjet pomoću drugo
blok. Pogledajmo više o tome u sintaksi i primjerima u nastavku.
Opća sintaksa
Opća sintaksa za ako... inače
izjava u Bashu je:
ako tada drugo fi
Ovdje, ako je zadovoljava, tj. ako vrati 0 (uspjeh), tada se izvršava blok koda 1. Ako uvjet ne vrati 0, tj. vraća status neuspjeha, tada se izvršava blok koda 2. The
ako... inače
blok završava s a fi
izjava.
Za više blokova koji odgovaraju višestrukim uvjetima,elif
koristi se:
ako tada elif onda elif onda ... ... ostalo fi
Ovdje se uvjeti provjeravaju redom i izvršava se blok koda prvog uvjeta koji vraća status 0 (uspjeh). Npr. ako Ako nijedan od uvjeta ne vrati status 0, Imajte na umu da je Za izvođenje kodnog bloka ako varijabla ima određenu vrijednost: Za provjeru više vrijednosti: Uvjeti mogu biti bilo koje Linux naredbe. Odgovarajući blok koda će se izvršiti ako se naredba uspješno pokrene. U gornjem primjeru, budući da Možemo ugnijezditi i drugu Ovo je korisno kada treba provjeriti odvojeni skup uvjeta nakon što je početni uvjet zadovoljen. Na primjer, sljedeći kod pokušava instalirati softver web poslužitelja: Kod najprije provjerava je li Nginx već instaliran u sustavu. Ako jest, samo prikazuje poruku i izlazi. Ako nije, pokušava instalirati Nginx. Ako se iz nekog razloga Nginx ne može instalirati u sustav iz paketa, pokušava instalirati Apache2. Ako čak i Apache2 daje pogrešku tijekom instalacije, izlazi s prikazom poruke da se softver ne može instalirati. Na sličan način, ugniježđeni blok može se koristiti unutar an Slično bilo kojem Bash kodu, Korisnik također može spremiti ovaj kod u datoteku skripte i izvršiti datoteku skripte. The Da biste dali dopuštenja za izvršavanje ove datoteke, pokrenite: Konačno, da izvršite datoteku, pokrenite: Slično bilo kojem programskom jeziku, onda vraća status koji nije nula (neuspjeh).
provjerava se. Ako
vraća status 0,
se izvršava. Nakon toga se daljnji uvjeti ne provjeravaju i izvršavanje koda se nastavlja na kod nakon
fi
izjava. u else blok se izvršava. Imajte na umu da je blok else neobavezan. Ako niti jedan uvjet nije zadovoljen, kao i br
drugo
blok je naveden, neće se pokrenuti nikakav uvjetni blok koda, a izvršavanje koda nastavit će se s kodom nakon fi
izjavu, kao što je prikazano u donjem dijagramu toka.zatim
izjava se koristi tek nakon ako
i elif
izjave i nisu potrebne nakon drugo
izjava.Primjeri
x=0 ako [ $x -eq 0 ] onda echo "Vrijednost X je 0" inače echo "Vrijednost X nije 0" fi
x=2 ako [ $x -eq 0 ] onda echo "Vrijednost X je 0" elif [ $x -eq 1 ] zatim echo "Vrijednost X je 1" elif [ $x -eq 2 ] zatim echo "Vrijednost X je 2" inače eho "Vrijednost X nije 0" fi
ako npm -v onda echo "NPM prisutan u sustavu" inače sudo apt install npm fi
npm
nije instaliran u sustav, naredba npm -v
vratio status koji nije nula. Stoga je izvršenje koda otišlo u drugo
blok, gdje instaliramo npm pomoću prikladan
upravitelj paketa. Kao što vidimo, potaknuo me je da unesem lozinku i započeo instalaciju npm-a.ako... inače
blok unutar an ako
, drugo
ili elif
blok:x=0 y=1 ako [ $x -eq 0 ] onda eho "X je 0" ako [ $y -eq 1 ] onda eho "Y je 1" inače eho "Y nije 1" fi inače eho "X je ne 0" fi
ako nginx -v onda echo "NGINX je već instaliran." inače ako sudo apt instalira nginx onda odjekne "instalacija NGINX uspješna." elif sudo apt install apache2 then echo "APACHE2 instalacija uspješna." else echo "Nije moguće instalirati bilo koji web softver." fi
elif
također blok.Izvršavanje
ako... inače
: Skripte i naredbeni redakako... inače
naredba se može koristiti u Bash ljusci izravno ili iz izvršne datoteke skripte ljuske. Nakon što Bash tumač pronađe an ako
, drugo
ili elif
izraz, nastavlja ljusku kako bi korisniku omogućio da uđe u blok koda.#!/bin/bash
na početku određuje interpreter koji će se koristiti kada se datoteka izvršava. Iako je Bash najčešće korištena ljuska u današnje vrijeme, neki korisnici preferiraju ljuske poput zsh, koje treba navesti umjesto bash na početku ove datoteke.chmod +x test.sh
./test.sh
Zaključak
ako... inače
izjava je temeljna značajka Basha. Učenje njegove upotrebe ide dug put u pisanju osnovnih, kao i naprednih skripti.