Kako napisati IF-izjave u Bash-Scriptu

Komande, sintaksa i primeri

Sa if-izrazom, koji je tip uslovne izjave, možete izvršiti različite radnje u zavisnosti od navedenih uslova. Ona efektivno daje sistemu sposobnost donošenja odluka.

Primjer najjednostavnije forme-if-izjave bi bio:

count = 5 ako [$ count == 5] onda echo "$ count" fi

U ovom primeru, promenljiva "count" se koristi za određivanje stanja koji se koristi kao dio izraza "if-statement". Pre nego što se izvrši if-statement, promenljiva "count" dodeljuje vrednost "5". Ako-izjava potom proverava da li je vrednost "broj" 5. Ako je to slučaj, izvrši se izjava između ključnih reči "tada" i "fi", inače se izvršavaju naredbe koje prate izjavu "if-statement". Ključna reč "fi" je "ako" je napisana unazad. Bash skriptni jezik koristi ovu konvenciju kako bi označio kraj složenog izraza, takve as-statement ili izjave slučajeva.

Izjava "echo" otvara svoj argument, u ovom slučaju, vrednost promenljive "count", do prozora terminala. Unošenje koda između ključnih reči u if-izjavi poboljšava čitljivost, ali nije neophodno.

Ako imate situaciju u kojoj se deo koda treba izvršiti samo ako uslov nije tačan, možete koristiti ključnu reč "else" u if-izjavi, kao u ovom primeru:

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

Ako je uslov "$ count == 5" tačan, sistem odštampa vrednost promenljive "count", u suprotnom štampa string "count nije 5".

Ako želite da razlikujete između više uslova, možete koristiti ključnu reč "elif", koja je izvedena iz "else if", kao u ovom primeru:

ako [$ count == 5] onda echo "count is five" elif [$ count == 6] onda echo "count is six" else echo "none of the above" fi

Ako je brojanje "5", sistem odštampa "broj je pet". Ako "brojanje" nije "5" već "6", sistem štampa "broj je šest". Ako nije "5" niti "6", sistem odštampa "nijedno od gore navedenih".

Kao što ste možda pretpostavili, možete imati bilo koji broj "elif" klauzula. Primer sa višestrukim "elifnim" uslovima bio bi:

ako [$ count == 5] onda echo "broj je pet" elif [$ count == 6] onda echo "count je šest" elif [$ count == 7] onda echo "broj je sedam" elif [ = 8] onda echo "count je osam" elif [$ count == 9] onda echo "broj je devet" drugo echo "nijedno od gore navedenih" fi

Kompaktniji način pisanja takvih izjava sa višestrukim uslovima je metoda slučaja . Funkcioniše slično kao if-izjava sa više klauzula "elif", ali je konciznija. Na primjer, gornji dio koda se može ponovo napisati sa izrazom "slučaj" na sljedeći način:

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

Ako-izjave se često koriste unutar for-petova ili tokom petlje kao u ovom primeru:

count = 1 done = 0 dok [$ count -le 9] spavaj 1 ((broj ++)) ako [$ count == 5] nastavi f echo "$ count" done echo Finished

Takođe možete imati ugnežene ako izjave. Najjednostavniji ugneženi ako je izjava oblika: ako ... onda ... drugo ... ako ... onda ... fi ... fi. Međutim, ako-izjava može biti ugnežena sa proizvoljnom složenošću.

Takođe pogledajte kako prenijeti argumente na bash skriptu , koja pokazuje kako koristiti uslove za obrađivanje parametara koji se prenose iz komandne linije.

Bash shell obezbeđuje druge programske konstrukcije, kao što su for-petlje , dok-petlje i aritmetički izrazi .