Kako napisati IF-izjave u Bash-Scriptu

Naredbe, sintakse i primjeri

Ako je izjava, koja je vrsta uvjetne izjave, možete izvršiti različite radnje ovisno o određenim uvjetima. To učinkovito daje sustavu sposobnost donošenja odluka.

Primjer najjednostavnijeg oblika if-izjave bio bi:

count = 5 ako [$ count == 5] zatim odjekuje "$ count" fi

U ovom primjeru, varijabla "broj" koristi se za određivanje stanja koje se koristi kao dio if-izjave. Prije izvršavanja if-statementa, varijabla "broj" dodjeljuje se vrijednost "5". If-statement zatim provjerava je li vrijednost "count" "5". Ako je to slučaj, izvršavaju se izjave između ključnih riječi "tada" i "fi", inače se izvršavaju sve izjave nakon if-izjave. Ključna riječ "fi" je "ako" napisana unatrag. Zajednički skriptni jezik koristi ovu konvenciju kako bi označio kraj složenog izraza, kao što je if-statement ili case-statements.

Izjava "echo" ispisuje svoj argument, u ovom slučaju, vrijednost varijable "count", u terminalni prozor. Utiskivanje koda između ključnih riječi if-statement poboljšava čitljivost, ali nije potrebno.

Ako imate situaciju u kojoj treba izvršiti komad koda samo ako uvjet nije istinit, možete upotrijebiti ključnu riječ "drugo" u if-izjavi, kao u ovom primjeru:

count = 5 ako [$ count == 5] zatim odjekuje "$ count" else echo "count nije 5" fi

Ako je uvjet "$ count == 5" istinit, sustav ispisuje vrijednost varijable "count", inače ispisuje string "count not 5".

Ako želite razlikovati više uvjeta, možete upotrijebiti ključnu riječ "elif" koja proizlazi iz "drugo ako", kao u ovom primjeru:

ako [$ count == 5] zatim odjekuje "count je pet" elif [$ count == 6] onda echo "count je šest" alt echo "none of the above" fi

Ako je "broj" "5", sustav ispisuje "broj je pet". Ako "broj" nije "5", već "6", sustav ispisuje "broj je šest". Ako nije "5" niti "6", sustav ispisuje "ništa od gore navedenog".

Kao što ste mogli pogoditi, možete imati bilo koji broj "elif" klauzula. Primjer s višestrukim "elif" uvjetima bio bi:

ako [$ count == 5] zatim odjekuju "count je pet" elif [$ count == 6] onda echo "broj je šest" elif [$ count == 7] a echo "count je sedam" elif [$ count = = 8] tada odjek "count je osam" elif [$ count == 9] zatim echo "count je devet" alt echo "none of the above" fi

Kompaktniji način pisanja takvih izjava s više uvjeta je metoda slučaja . Djeluje slično onom izjavom ako je riječ o više klauzula "elif", ali je jezgrovita. Na primjer, gornji dio koda može se ponovno napisati sa izjavom "slučaj" kako slijedi:

slučaj "$ count" u 5) echo "count je pet" ;; 6) echo "count je šest" ;; 7) echo "count je sedam" ;; 8) echo "count je osam" ;; 9) echo "count je devet" ;; *) odjek "ni jedan od gore navedenih" ESAC

If-izjave se često koriste unutar for-loops ili while-loops kao u ovom primjeru:

count = 1 done = 0 dok [$ count -le 9] spava 1 ((count ++)) ako [$ count == 5] zatim nastavlja fi echo "$ count"

Također možete imati ugniježđene izraze. Jednostavno ugniježđena ako je izjava u obliku: ako ... onda ... drugo ... ako ... onda ... fi ... fi. Međutim, if-izjava može biti ugniježđena s proizvoljnom složenosti.

Vidi također kako prenijeti argumente u bash skriptu koja pokazuje kako koristiti uvjetne parametre za obradu parametara koji su prošli iz naredbenog retka.

Skupina bash daje druge programske konstrukte, kao što su for-loops , while-loops i aritmetični izrazi .