Aritmetički u Bashu

Kako dodati izračune u skripte

Iako je Bash skriptni jezik, ima prilično sve mogućnosti jednog programskog jezika opće namjene. To uključuje aritmetičke funkcije. Postoji nekoliko sintaksnih opcija koje možete upotrijebiti za izazivanje aritmetičke procjene izraza. Možda je najčitnija zapovijed. Na primjer

neka "m = 4 * 1024"

računat će 4 puta 1024 i dodijeliti rezultat varijabli "m".

Rezultat možete ispisati dodavanjem izjave o odjeku :

neka "m = 4 * 1024" odjekuje $ m

To možete testirati iz naredbenog retka unosom sljedećeg koda:

neka "m = 4 x 1024"; echo $ m

Također možete stvoriti datoteku koja sadrži Bash naredbe, u kojem slučaju trebate dodati liniju na vrhu datoteke koja određuje program koji treba izvršiti kôd. Na primjer:

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

uz pretpostavku da je izvršni program Bash smješten u / bin / bash . Također morate postaviti dozvole datoteke skripte tako da je izvršna. Pod pretpostavkom da je naziv skripte datoteke script1.sh , možete postaviti dopuštenja za izvršavanje datoteke s naredbom:

chmod 777 script1.sh

Nakon toga možete ga izvršiti naredbom:

./script1.sh

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

neka "m = a + 7"

ili oduzimanje:

neka "m = a - 7"

ili podjelu:

neka "m = a / 2"

ili modulo (ostatak nakon cijele podjele):

neka "m = a% 100"

Kada se operacija primjenjuje na istu varijablu kojoj je dodijeljen rezultat, možete koristiti standardni aritmetički stenografski operatori zadataka, koji se također nazivaju operaterima dodjele složenosti. Na primjer, za dodavanje imamo:

neka "m + = 15"

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

neka "m - = 3"

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

neka "m / = 5"

što je ekvivalentno "m = m / 5". A za modulo, imamo:

neka "m% = 10"

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

Osim toga, možete koristiti operatore povećanja i smanjenja :

neka "m ++"

jednak je "m = m + 1". I

neka "m"

jednak je "m = m - 1".

A onda postoji ternarni operator "upitnik-debelog crijeva", koji vraća jednu od dvije vrijednosti, ovisno o tome je li navedeno stanje istinito ili netočno. Na primjer

neka "k = (m <9)" 0: 1 "

Desna strana ove izjave za dodjelu procjenjuje na "0" ako je varijabla "m" manja od 9. U suprotnom, procjenjuje se na 1. To znači da se varijabla "k" dodjeljuje "0" ako je "m" manje od 9 i "1" inače.

Opći oblik operatera upitnika i debelog crijeva je:

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

Plutajuće točke u aritmetici u Bashu

Operater let radi samo za cjelobrojnu aritmetičku vrijednost. Za aritmetiku s pomičnim zarezom možete koristiti, na primjer, GNU bc kalkulator kako je ilustrirano u ovom primjeru:

echo "32.0 + 1.4" | prije Krista

Operater "cijevi" "|" prolazi aritmetički izraz "32.0 + 1.4" na bc kalkulator, koji vraća pravi broj. Naredba echo ispisuje rezultat na standardni izlaz.

Alternativna sintaksa za aritmetiku

Backticks (natrag pojedinačni citati) mogu se koristiti za procjenu aritmetičkog izraza kao u ovom primjeru:

echo `expr $ m + 18`

To će dodati 18 na vrijednost varijable "m", a zatim ispisati rezultat.

Da biste dodijelili računnu vrijednost varijabli, možete upotrijebiti jednaki znak bez razmaka oko nje:

m = `expr $ m + 18 '

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

((m * = 4))

To će četverostrirati vrijednost varijable "m".

Osim aritmetičke evaluacije, Bash ljuska pruža i druge programske konstrukcije, kao što su for-loops , while-loops , conditionals , functions i subroutines .