logo

Bash Ako

U ovoj temi ćemo razumjeti kako koristiti if izjave u Bash skriptama za dovršavanje naših automatiziranih zadataka.

datotečni sustav u linuxu

Bash ako su izjave korisne. Koriste se za izvođenje uvjetnih zadataka u sekvencijalnom tijeku izvođenja naredbi. If izjave nam obično omogućuju donošenje odluka u našim Bash skriptama. Oni nam pomažu da odlučimo hoćemo li ili ne pokrenuti dio koda na temelju uvjeta koji možemo postaviti.

Osnovne if izjave

Osnovna naredba if naređuje da se izvrši samo određeni skup radnji ako je određeni uvjet istinit. Ako nije točno, nemojte izvršavati te radnje. Ako se izjava temelji na sljedećem formatu:

Sintaksa

 if [ expression ]; then statements fi 

Izjava između zatim i biti (Ako je unatrag) bit će izvršen samo ako je izraz (između uglatih zagrada) istinit.

Bilješka:Pripazite na razmake koji se koriste u prvom retku i točku i zarez na kraju prvog retka; oba su obavezna za korištenje.Ako je uvjetna izjavazavršava sabiti.

  • Za korištenje više uvjeta s operatorom AND:
 if [ expression_1 ] && [ expression_2 ]; then statements fi 
  • Za korištenje više uvjeta s operatorom OR:
 if [ expression_1 ] || [ expression_2 ]; then statements fi 
  • Za složene izraze s operatorima I & ILI možemo koristiti sljedeću sintaksu:
 if [ expression_1 && expression_2 || expression_3 ]; then statements fi 

Slijede neki primjeri koji pokazuju korištenje if naredbe:

Primjer 1

U ovom primjeru uzmite korisnički unos bilo kojeg broja i provjerite je li vrijednost veća od 125.

 #!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi 

Izlaz

Ako unesemo broj 159, izlaz će izgledati ovako:

Bash If naredba

Primjer 2

U ovom primjeru demonstriramo korištenje izjava if s jednostavnim scenarijem usporedbe dva niza:

 #!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi 

Izlaz

10 od 50
Bash If naredba

Primjer 3

U ovom primjeru pokazujemo kako usporediti brojeve pomoću naredbe if:

 #!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi 

Izlaz

Bash If naredba

Primjer 4

U ovom primjeru definirat ćemo kako koristiti operator AND za uključivanje više uvjeta u if izraz:

 #!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi 

Izlaz

Bash If naredba

Primjer 5

U ovom primjeru ćemo definirati kako koristiti OR operator za uključivanje više uvjeta u if izraz:

 #!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi 

Izlaz

Bash If naredba

Primjer 6

U ovom primjeru definirat ćemo kako koristiti AND i OR za uključivanje više uvjeta u if izraz:

 #!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi 

Izlaz

tat puni oblik
Bash If naredba

Opcije za naredbu If u Bash skriptiranju

If izjava sadrži mnogo opcija za izvođenje određenog zadatka. Ove se opcije mogu koristiti za operacije s datotekama, operacije s nizovima itd. Slijede neke od najčešće korištenih opcija:

-
Opcije (Operatori) Opis
! IZRAZ Za provjeru je li EXPRESSION lažan.
-n STRING Za provjeru je li duljina STRING veća od nule.
-z STRING Za provjeru je li duljina STRING nula (tj. prazna je)
STRING1 == STRING2 Za provjeru je li STRING1 jednako STRING2.
STRING1 != STRING2 Za provjeru nije li STRING1 jednako STRING2.
CIJELI BROJ1 -eq CIJELI BROJ2 Za provjeru je li INTEGER1 brojčano jednak INTEGER2.
CIJELI BROJ1 -gt CIJELI BROJ2 Za provjeru je li INTEGER1 brojčano veći od INTEGER2.
CIJELI BROJ1 -lt CIJELI BROJ2 Za provjeru je li INTEGER1 brojčano manji od INTEGER2.
-d DATOTEKA Za provjeru postoji li FILE i je li direktorij.
-e DATOTEKA Za provjeru postoji li FILE.
-r DATOTEKA Za provjeru postoji li DATOTEKA i postoji li dopuštenje za čitanje.
-s DATOTEKA Za provjeru da li FILE postoji i da li je veličina veća od nule (što znači da nije prazna).
-w DATOTEKA Za provjeru postoji li DATOTEKA i postoji li dopuštenje za pisanje.
x DATOTEKA Za provjeru da li FILE postoji i da li je odobreno dopuštenje za izvršenje.

Ugniježđeni If

Možete primijeniti onoliko 'if naredbi' koliko je potrebno unutar vaše bash skripte. Također je moguće koristiti if naredbu unutar druge 'if naredbe'. Poznata je kao ugniježđena If naredba.

Primjer

U ovom primjeru ćemo pronaći 'je li dati broj veći od 50 i je li paran broj' pomoću ugniježđenog if izraza.

 #!/bin/bash #Nested if statement if [  -gt 50 ] then echo 'Number is greater than 50.' if ((  % 2 == 0 )) then echo 'and it is an even number.' fi fi 

Izlaz

Ako unesemo vrijednost argumenta kao 100, tada će izlaz izgledati ovako:

Bash If naredba

Zaključak

U ovoj smo temi raspravljali o tome kako bismo mogli koristiti uvjetno grananje u sekvencijalnom tijeku izvođenja naredbi s bash if naredbom.