Aritmetika v Bashu

Kako dodati izračune Bash Scriptu

Čeprav je Bash skriptni jezik, ima precej vse možnosti splošnega programskega jezika. To vključuje aritmetične funkcije. Obstajajo številne možnosti sintakse, ki jih lahko uporabite, da izzovete aritmetično vrednotenje izraza. Morda najbolj berljiva je ukaz let . Na primer

pustite "m = 4 * 1024"

bo izračunal 4 krat 1024 in dodelil rezultat spremenljivki "m".

Rezultate lahko natisnete tako, da dodate echo izjavo:

pustite "m = 4 * 1024" echo $ m

To lahko preizkusite iz ukazne vrstice tako, da vnesete naslednjo kodo:

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

Prav tako lahko ustvarite datoteko, ki vsebuje ukaze Bash, v tem primeru bi morali dodati vrstico na vrhu datoteke, ki določa program, ki naj bi izvršil kodo. Na primer:

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

ob predpostavki, da je izvedenka Bash nameščena v / bin / bash . Prav tako morate nastaviti dovoljenja vaše skriptne datoteke, tako da je izvedljiva. Ob predpostavki, da je ime skriptne datoteke skripta1.sh , lahko nastavite dovoljenja za izvedbo datoteke z ukazom:

chmod 777 script1.sh

Po tem lahko izvedete z ukazom:

./script1.sh

Razpoložljive aritmetične operacije so podobne tistim v standardnih programskih jezikih, kot sta Java in C. Poleg množenja, kot je prikazano zgoraj, uporabljate dodatek:

pustite "m = a + 7"

ali odštevanje:

pustite "m = a - 7"

ali delitev:

pustite "m = a / 2"

ali modulo (preostanek po celem delu):

pustite "m = a% 100"

Ko se operacija uporablja za isto spremenljivko, s katero je dodeljen rezultat, lahko uporabite standardne aritmetične operatorje posamičnih poslanstev, ki se imenujejo tudi operatorji za dodeljevanje spojin. Na primer, poleg tega imamo:

pustite "m + = 15"

kar je enako "m = m + 15". Za odštevanje imamo:

pustite "m - = 3"

kar je enako "m = m - 3". Za delitev imamo:

pustite "m / = 5"

kar je enako "m = m / 5". In za modulo, imamo:

pustite "m% = 10"

kar je enako "m = m% 10".

Poleg tega lahko uporabite tudi postopke za povečanje in zmanjšanje :

pustite "m ++"

je enako "m = m + 1". In

naj "m--"

je enako "m = m - 1".

In potem je trikotni operater "vprašanje-kolon", ki vrne eno od dveh vrednosti, odvisno od tega, ali je določeni pogoj resničen ali napačen. Na primer

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

Desna stran te izjave o dodelitvi oceni na "0", če je spremenljivka "m" manjša od 9. V nasprotnem primeru se oceni na 1. To pomeni, da je spremenljivka "k" dodeljena "0", če je "m" manj kot 9 in "1" drugače.

Splošna oblika operaterja vprašalnega kolona je:

pogoj? vrednost-if-true: vrednost-if-false

Aritmetika plavajoče točke v Bash

Operator let deluje samo za celoštevilčno aritmetiko. Za aritmetiko s plavajočimi točkami lahko na primer uporabite kalkulator GNU bc, kot je prikazano v tem primeru:

echo "32.0 + 1.4" | bc

Operator "cevi" | " prehaja aritmetični izraz "32.0 + 1.4" v kalkulator bc, ki vrne dejansko število. Ukaz echo natisne rezultat na standardni izhod.

Alternativna sintaksa za aritmetiko

Če želite oceniti aritmetični izraz kot v tem primeru, lahko uporabite presledke (nazaj enojne narekovaje):

echo `expr $ m + 18`

To bo dodalo vrednost 18 spremenljivke "m" in nato natisnilo rezultat.

Če želite vrednost spremenljivke dodeliti spremenljivki, lahko uporabite znak za enačbo brez presledkov okoli njega:

m = `expr $ m + 18`

Drug način ocenjevanja aritmetičnih izrazov je uporaba dvojne oklepajev. Na primer:

((m * = 4))

To bo štirikrat preseglo vrednost spremenljivke "m".

Poleg aritmetičnega vrednotenja Bash shell nudi tudi druge programske konstrukte, kot so for-loops , while-zanke , conditionals ter funkcije in podprogrami .