Aritmetika u Bashu

Kako dodati izračune Bash Scriptu

Iako je Bash skriptni jezik, on ima gotovo sve mogućnosti programskog jezika opšte namene. Ovo uključuje aritmetičke funkcije. Postoji niz sintaksnih opcija koje možete koristiti da biste iscrtali aritmetičku procjenu izraza. Možda najčitanija je komanda let . Na primjer

pusti "m = 4 * 1024"

će izračunati 4 puta 1024 i odrediti rezultat promenljivoj "m".

Rezultate možete ispisati dodavanjem eho izjave:

pustite "m = 4 * 1024" echo $ m

Ovo možete testirati iz komandne linije unosom sledećeg koda:

pustite "m = 4 * 1024"; echo $ m

Takođe možete kreirati datoteku sa Bash naredbama, u kom slučaju dodati liniju na vrhu datoteke koja određuje program koji bi trebao izvršiti kod. Na primjer:

#! / bin / bash pustite "m = 4 * 1024" echo $ m

pretpostavlja se da je izvršni Bash lociran u / bin / bash . Takođe morate postaviti dozvole za datoteku skripti tako da je izvršna. Pod pretpostavkom da je ime skripta script1.sh , možete podesiti dozvole da izvršnu datoteku izvrši pomoću naredbe:

chmod 777 script1.sh

Nakon toga možete ga izvršiti pomoću naredbe:

./script1.sh

Dostupne aritmetičke operacije su slične onima u standardnim programskim jezicima kao što su Java i C. Osim množenja, kao što je ilustrovano gore, koristite dodatak:

pustite "m = a + 7"

ili oduzimanje:

pustite "m = a - 7"

ili podela:

pustite "m = a / 2"

ili modulo (ostatak nakon celog divizije):

pustite "m = a% 100"

Kada se operacija primeni na istu varijablu koja je dodijeljena rezultatu, možete koristiti standardne aritmetičke operacije dodjele stenograma, koje se također nazivaju operaterima dodeljivanja spojeva. Na primjer, pored toga, imamo:

pustimo "m + = 15"

što je ekvivalentno "m = m + 15". Za oduzimanje imamo:

pustimo "m - = 3"

što je ekvivalentno "m = m - 3". Za podjelu imamo:

pustite "m / = 5"

što je ekvivalentno "m = m / 5". I po modulu, imamo:

pustite "m% = 10"

što je ekvivalentno "m = m% 10".

Pored toga, možete koristiti operacije povećanja i smanjenja :

pustite "m ++"

odgovara "m = m + 1". I

neka "m--"

je ekvivalentan "m = m - 1".

Zatim postoji i ternarni operator "pitanje-kolona", koji vraća jednu od dve vrijednosti u zavisnosti od toga da li je navedeni uslov tačan ili netačan. Na primjer

pustimo "k = (m <9)? 0: 1"

Desna strana ove izjave o dodeljivanju procenjuje na "0" ako je promenljiva "m" manja od 9. U suprotnom, procenjuje se na 1. To znači da je promenljiva "k" dodeljena "0" ako je "m" manji od 9 i "1" inače.

Opšti oblik operatora markera-kolona je:

stanje ? value-if-true: value-if-false

Aritmetika sa plutajućim tačkama u Bashu

Operator let radi samo za celu aritmetiku. Za aritmetiku sa plutajućim tačkama možete koristiti, na primer, GNU bc kalkulator kao što je prikazano u ovom primeru:

echo "32.0 + 1.4" | bc

Operator "cevi" | " prosleđuje aritmetički izraz "32.0 + 1.4" u kalkulator bc, koji vraća stvarni broj. Eho komanda štampa rezultat na standardni izlaz.

Alternativna sintaksa za aritmetiku

Backticks (back single quotes) se mogu koristiti za procjenu aritmetičkog izraza kao u ovom primeru:

echo `expr $ m + 18`

Ovo će dodati 18 vrijednosti varijable "m", a zatim ispisati rezultat.

Da biste vrijednosti izračunavanja dodijelili promenljivici, možete koristiti znak jednakosti bez razmaka oko nje:

m = `expr $ m + 18`

Drugi način procene aritmetičkih izraza je korištenje dvostruke zagrade. Na primjer:

((m * = 4))

Ovo će četvrtasti vrednost promenljive "m".

Pored aritmetičke procene, Bash shell obezbeđuje i druge programske konstrukcije, kao što su for-petlje , dok su petlje , uslovni i funkcije i potprogrami .