- Upotreba naredbe 'Ako'.
- Korištenje izjave 'If-Else'.
- Upotreba izjave 'If-Elif-Else'.
- Upotreba naredbe 'Ako' za provjeru prazne varijable
- Upotreba naredbe 'If' s logičkim operatorom
- Upotreba ugniježđenih naredbi 'If'.
- Upotreba naredbe “If” za provjeru postojanja datoteke
- Upotreba naredbe 'Ako' za provjeru postojanja imenika
- Upotreba naredbe 'If' s regularnim izrazom
- Upotreba naredbe 'Slučaj'.
Upotreba naredbe 'Ako'.
Ovaj primjer pokazuje jednostavnu upotrebu izjave 'if' u Bashu. Šest vrsta operatora za usporedbu može se koristiti za usporedbu numeričkih vrijednosti u Bashu. To su “-eq” (jednako), “-ne” (nije jednako), “-le” (manje od jednako), “-ge” (veće od jednako), “-lt” (manje od) i “ -gt” (veće od). Upotreba '-lt' i '-eq' prikazana je u sljedećoj skripti bez obzira je li broj manji od 99 ili nije provjeren pomoću operatora '-lt'. Broj je paran ili neparan i provjerava ga operator '-eq'.
#!/bin/bash
#Dodijelite brojčanu vrijednost
( ( broj = pedeset ) )
#Provjerite numeričku vrijednost pomoću izjave 'if'
ako [ $broj -lt 99 ]
zatim
jeka 'Broj je valjan.'
biti
#Provjeri je li broj paran ili ne
ako [ $ ( ( $broj % 2 ) ) -ekv 0 ]
zatim
jeka 'Broj je paran.'
biti
Izlaz :
Nakon izvršavanja prethodne skripte pojavljuje se sljedeći izlaz:
Korištenje izjave 'If-Else'.
Upotreba izjave 'if-else' prikazana je u sljedećoj skripti. Vrijednost niza preuzima se od korisnika i provjerava je li vrijednost 'PLAVA' ili nije pomoću izjave 'if-else'.
#!/bin/bash
#Uzmite vrijednost niza od korisnika
čitati -str 'Unesite svoju omiljenu boju:' boja
#Provjerite vrijednost niza pomoću izjave 'if-else'
ako [ ${boja^^} == 'PLAVA' ]
zatim
jeka 'Dobro, plava boja je dostupna.'
drugo
jeka ' $boja nije dostupno.'
biti
Izlaz :
Sljedeći izlaz pojavljuje se nakon izvršavanja prethodne skripte ako se 'crveno' uzme kao ulaz:
Sljedeći izlaz pojavljuje se nakon izvršavanja prethodne skripte ako se 'plavo' uzme kao ulaz:
Upotreba izjave 'If-Elif-Else'.
Upotreba izjave 'if-elif-else' prikazana je u sljedećoj skripti. Broj se uzima od korisnika i provjerava s različitim vrijednostima dok se ne pronađe podudaranje. Ako se pronađe podudaranje, ispisuje se odgovarajuća poruka. Ako se ne pronađe podudaranje, ispisuje se zadana poruka.
#!/bin/bash#Uzmite ID vrijednost od korisnika
čitati -str 'Unesite svoj serijski broj:' serijski
#Provjerite ulaznu vrijednost pomoću naredbe 'if-elif-else'
ako [ $serijski == '4523' ]
zatim
jeka 'Odabrani ste u skupini A.'
Elif [ $serijski == '8723' ]
zatim
jeka 'Odabrani ste u skupini B.'
Elif [ $serijski == '3412' ]
zatim
jeka 'Odabrani ste u skupini C.'
drugo
jeka 'Niste odabrani' .
biti
Izlaz:
Nakon izvršavanja skripte s vrijednošću 8723 pojavljuje se sljedeći izlaz:
Nakon izvršavanja skripte s vrijednošću 9078 pojavljuje se sljedeći izlaz:
Upotreba naredbe 'Ako' za provjeru prazne varijable
Metoda provjere je li varijabla prazna bez upotrebe naredbe 'if' prikazana je u sljedećoj skripti. Opcija '-z' koristi se u izjavi 'if' za obavljanje ovog zadatka.
#!/bin/bash#Uzmite ID vrijednost od korisnika
čitati -str 'Unesite svoj serijski broj:' serijski
#Provjeri je li varijabla prazna ili nije
ako [ ! -S $serijski ]
zatim
#Provjerite ulaznu vrijednost pomoću izjave 'if-elif-else'
ako [ $serijski == '690' ]
zatim
jeka 'Odabrani ste u tim-1.'
Elif [ $serijski == '450' ]
zatim
jeka 'Odabrani ste u tim-2.'
drugo
jeka 'Niste odabrani' .
biti
drugo
jeka 'Nije naveden serijski broj.'
biti
Izlaz :
Nakon izvršavanja skripte s vrijednošću 690 pojavljuje se sljedeći izlaz:
Sljedeći izlaz pojavljuje se nakon izvršavanja skripte ako se ne uzme ulazna vrijednost:
Upotreba naredbe 'If' s logičkim operatorima
U uvjetnoj izjavi Bash mogu se koristiti tri vrste logičkih operatora. To su logičko ILI (||), logičko I (&&) i logičko NE (!). Vrijednost koda preuzima se od korisnika. Ako ulazna vrijednost nije prazna, vrijednost se provjerava s dvije vrijednosti koda pomoću logičkog ILI. Ako vrijednost odgovara bilo kojem kodu, ispisuje se odgovarajuća poruka. Ako se ne pronađe odgovarajući kod, ispisuje se zadana poruka.
#!/bin/bash#Uzmite šifru tečaja od korisnika
čitati -str 'Unesite kod tečaja:' kodirati
#Provjeri je li varijabla prazna ili nije
ako [ ! -S $kod ]
zatim
#Provjerite ulaznu vrijednost pomoću naredbe 'if-elif-else'
ako [ [ $kod == 'CSE-106' || $kod == 'CSE-108' ] ]
zatim
jeka 'CSE tečaj.'
Elif [ [ $kod == 'BBA-203' || $kod == 'BBA-202' ] ]
zatim
jeka 'BBA tečaj.'
drugo
jeka 'Nevažeći kod tečaja.'
biti
drugo
jeka 'Nije navedena šifra tečaja.'
biti
Izlaz :
Nakon izvršavanja skripte s ulaznom vrijednošću 'CSE-108' pojavljuje se sljedeći izlaz:
Nakon izvršavanja skripte s ulaznom vrijednošću 'BBA-56' pojavljuje se sljedeći izlaz:
Upotreba ugniježđenih naredbi 'If'.
Kada se 'if' uvjet koristi unutar drugog 'if' uvjeta, to se naziva ugniježđena 'if' izjava. Metoda korištenja ugniježđenog 'if' prikazana je u sljedećoj skripti. Od korisnika se uzimaju dvije vrijednosti ocjene. Ako ulazne vrijednosti nisu prazne, prvi uvjet 'if' provjerava je li vrijednost '$theory' veća ili jednaka 60 ili nije. Ako prvi uvjet 'if' vrati 'true', drugi uvjet 'if' provjerava je li vrijednost '$lab' veća ili jednaka 50 ili nije. Ako drugi uvjet 'if' također vrati 'true', ispisuje se poruka o uspjehu. U protivnom se ispisuje poruka o pogrešci.
#!/bin/bash#Uzmite ocjenu teorije
čitati -str 'Unesite oznaku teorije:' teorija
#Uzmi laboratorijsku oznaku
čitati -str 'Unesite oznaku laboratorija:' laboratorija
#Provjeri jesu li varijable prazne ili ne
ako [ [ ! -S $teorija && ! -S $laboratorija ] ]
zatim
#Provjerite ulazne vrijednosti pomoću ugniježđene izjave 'if'
ako [ $teorija -ge 60 ]
zatim
ako [ $laboratorija -ge pedeset ]
zatim
jeka — Prošli ste.
drugo
jeka 'Nisi uspio.'
biti
drugo
jeka 'Nisi uspio.'
biti
drugo
jeka 'Ocjena teorije ili laboratorija je prazna.'
biti
Izlaz :
Sljedeći izlaz se pojavljuje ako su obje ili jedna od ulaznih vrijednosti prazne:
Sljedeći rezultat pojavljuje se ako se 78 uzme kao ocjena teorije, a 45 kao ocjena laboratorija. Ovdje drugi uvjet 'if' vraća 'false':
Sljedeći rezultat pojavljuje se ako se 67 uzme kao ocjena teorije, a 56 kao ocjena laboratorija. Ovdje oba 'if' uvjeta vraćaju 'true':
Sljedeći rezultat pojavljuje se ako se 50 uzme kao ocjena teorije, a 80 kao ocjena laboratorija. Ovdje prvi 'if' uvjet vraća 'false':
Upotreba naredbe “If” za provjeru postojanja datoteke
Postojanje datoteke može se provjeriti bash skriptom na dva načina. Jedan je korištenje operatora “-f” sa zagradama “[]”. Drugi je korištenje naredbe 'test' i operatora '-f'. Uzima se naziv datoteke i provjerava postojanje datoteke pomoću uvjeta 'if' s operatorom '-f'. Zatim se uzima drugi naziv datoteke i provjerava postojanje datoteke pomoću izjave 'if' s naredbom 'test' i operatorom '-f'.
#!/bin/bash#Uzmite naziv datoteke
čitati -str 'Unesite naziv datoteke:' fn1
#Provjerite postoji li datoteka ili ne bez korištenja `test`
ako [ -f $fn1 ]
zatim
jeka ' $fn1 dokument postoji.'
drugo
jeka ' $fn1 Mapa ne postoji.'
biti
#Dodaj novi red
jeka
#Uzmite drugi naziv datoteke
čitati -str 'Unesite drugi naziv datoteke:' fn2
#Provjerite postoji li datoteka ili ne pomoću `test`
ako test -f $fn2 ; zatim
jeka ' $fn2 dokument postoji.'
#Provjerite je li datoteka prazna ili nije koristeći `test`
ako test -S $fn2 ; zatim
jeka ' $fn2 datoteka je prazna.'
drugo
jeka ' $fn2 datoteka nije prazna.'
biti
drugo
jeka ' $fn2 Mapa ne postoji.'
biti
Izlaz :
Sljedeći izlaz se pojavljuje nakon izvršavanja skripte uzimajući 'test.txt' i 'testing.txt' kao nazive datoteka. Prema izlazu, obje datoteke postoje na trenutnoj lokaciji, a datoteka 'testing.txt' je prazna:
Sljedeći izlaz se pojavljuje nakon izvršavanja skripte uzimajući 'f1.txt' i 'test.txt' kao nazive datoteka. Prema izlazu, datoteka 'f1.txt' ne postoji na trenutnoj lokaciji, a datoteka 'test.txt' nije prazna:
Upotreba naredbe 'Ako' za provjeru postojanja imenika
Postojanje direktorija može se provjeriti Bash skriptom na dva načina kao i datoteka. Jedan je korištenje operatora “-d” sa zagradama “[]”. Drugi je korištenje naredbe 'test' i operatora '-d'. Uzima se naziv imenika i provjerava postojanje imenika pomoću uvjeta “if” s operatorom “-d”. Zatim se uzima drugi naziv direktorija i provjerava postojanje datoteke pomoću izjave 'if' s naredbom 'test' i operatorom '-d'.
#!/bin/bash#Uzmite naziv imenika
čitati -str 'Unesite naziv direktorija:' ti1
#Provjerite da li direktorij postoji ili ne bez korištenja `test`
ako [ -d $dir1 ]
zatim
jeka ' $dir1 imenik postoji.'
drugo
jeka ' $dir1 imenik ne postoji.'
biti
#Dodaj novi red
jeka
#Uzmite drugi naziv imenika
čitati -str 'Unesite drugi naziv direktorija:' režija2
#Provjerite postoji li datoteka ili ne pomoću `test`
ako test -d $dir2
zatim
jeka ' $dir2 imenik postoji.'
drugo
jeka ' $dir2 imenik ne postoji.'
biti
Izlaz :
Sljedeći izlaz se pojavljuje nakon izvršavanja skripte s nazivima direktorija 'temp' i 'files'. Prema izlazu, oba direktorija postoje na trenutnoj lokaciji. Zatim se izvršava naredba “ls” za provjeru sadržaja direktorija:
Sljedeći izlaz se pojavljuje nakon izvršavanja skripte s nazivima direktorija 'testiranje' i 'novi'. Prema izlazu, oba direktorija ne postoje na trenutnoj lokaciji. Zatim, izlaz naredbe “ls” pokazuje da oba direktorija ne postoje:
Upotreba naredbe 'If' s regularnim izrazom
Sljedeća skripta prikazuje metodu provjere valjanosti ulaznih podataka korištenjem izjave 'if' s regularnim izrazom. Ovdje se dvije ulazne vrijednosti uzimaju od korisnika i pohranjuju u varijablama “$bookname” i “$bookprice”. Uvjet “if” koristi se u skripti za provjeru sadrži li varijabla “$bookname” sve abecedne znakove, a “$bookprice” broj.
#!/bin/bash#Uzmite naziv knjige i cijenu od korisnika
jeka -n 'Unesite naziv knjige:'
čitati ime knjige
jeka -n 'Unesite cijenu knjige:'
čitati cijena knjige
#Provjerite da naziv knjige sadrži samo abecedu
ako ! [ [ ' $naziv knjige ' =~ [ A-Za-Z ] ] ] ; zatim
jeka 'Naziv knjige je nevažeći.'
drugo
jeka 'Ime knjige je važeće.'
biti
#Provjerite da cijena knjige sadrži samo znamenke
ako ! [ [ ' cijena knjige $ ' =~ [ 0 - 9 ] ] ] ; zatim
jeka 'Cijena knjige može sadržavati samo znamenke.'
drugo
jeka 'Cijena knjige je važeća.'
biti
Izlaz :
Sljedeći izlaz pojavljuje se nakon izvršavanja skripte s ulaznim vrijednostima 'Bash Programming' kao nazivom knjige i 78 kao cijenom knjige:
Sljedeći izlaz pojavljuje se nakon izvršavanja skripte s ulaznim vrijednostima 90 kao nazivom knjige i 'Bash' kao cijenom knjige:
Upotreba naredbe 'Slučaj'.
Naredba 'case' je alternativa naredbi 'if-elif-else', ali svi zadaci naredbe 'if-elif-else' ne mogu se obaviti pomoću naredbe 'case'. Jednostavna upotreba izjave 'case' prikazana je u sljedećoj skripti. Numerička vrijednost se uzima od korisnika kao vrijednost tekućeg mjeseca. Zatim se ispisuje odgovarajući mjesec ako se pronađe odgovarajuća vrijednost u izjavi 'case'. Inače se ispisuje zadana poruka.
#!/bin/bash#Uzmite vrijednost tekućeg mjeseca u broju
čitati -str 'Unesite današnji mjesec brojem:' b_mjesec
#Ispišite tekst prije ispisa naziva mjeseca
jeka -n 'Ime trenutnog mjeseca je '
#Pronađite i ispišite odgovarajući naziv mjeseca na temelju unosa
slučaj $b_mjesec u
1 | 01 ) jeka 'Siječanj.' ;;
2 | 02 ) jeka 'Veljača.' ;;
3 | 03 ) jeka 'Ožujak.' ;;
4 | 04 ) jeka 'Travanj.' ;;
5 | 05 ) jeka 'Svibanj.' ;;
6 | 06 ) jeka 'Lipanj.' ;;
7 | 07 ) jeka 'Srpanj.' ;;
8 | 08 ) jeka 'Kolovoz.' ;;
9 | 09 ) jeka 'Rujan.' ;;
10 ) jeka 'Listopad.' ;;
jedanaest ) jeka 'Studeni.' ;;
12 ) jeka 'Prosinac.' ;;
* ) jeka 'nije pronađeno.' ;;
esac
Izlaz :
Nakon izvršavanja skripte s vrijednošću 6 pojavljuje se sljedeći izlaz:
Nakon izvršavanja skripte s vrijednošću 09 pojavljuje se sljedeći izlaz:
Nakon izvršavanja skripte s vrijednošću 14 pojavljuje se sljedeći izlaz:
Zaključak
Različite upotrebe uvjetne logike korištenjem naredbi 'if' i 'case' prikazane su u 10 primjera ovog vodiča. Koncept korištenja uvjetne logike u Bashu bit će razjašnjen novim korisnicima Basha nakon čitanja ovog vodiča.