Aritmetinis Bashas

Kaip pridėti skaičiavimus į Bash scenarijų

Nors Bash yra scenarijus, ji turi beveik visas bendrosios paskirties programavimo kalbos galimybes. Tai apima aritmetines funkcijas. Yra keletas sintaksės parinkčių, kurias galite naudoti išraiškos aritmetiniam vertinimui sukelti. Galbūt labiausiai skaitoma yra komanda paleisti . Pavyzdžiui

tegul "m = 4 * 1024"

apskaičiuos 4 kartus 1024 ir priskirs rezultatui kintamojo "m".

Galite atspausdinti rezultatą, pridedant echo pareiškimą:

tegul "m = 4 * 1024" echo $ m

Galite išbandyti tai iš komandinės eilutės, įveskite šį kodą:

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

Taip pat galite sukurti failą, kuriame yra Bash komandos, tokiu atveju jūs turite pridėti eilutę failo viršuje, kuriame nurodoma programa, kuri turėtų vykdyti kodą. Pavyzdžiui:

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

darant prielaidą, kad vykdomąjį failą Bash yra / bin / bash . Taip pat turite nustatyti scenarijaus failo teises, kad jis būtų vykdomuoju. Darant prielaidą, kad scenarijaus failo vardas yra script1.sh , galite nustatyti leidimus atlikti vykdomąjį failą su komanda:

chmod 777 script1.sh

Po to jūs galite įvykdyti tai naudodami komandą:

./script1.sh

Galimos aritmetinės operacijos yra panašios į tuos standartinėse programavimo kalbose kaip Java ir C. Be dauginimo, kaip parodyta aukščiau, jūs naudojate papildomai:

tegul "m = a + 7"

ar atimties:

tegul "m = a - 7"

ar padalinys:

tegul "m = a / 2"

arba modulo (likusio po sveikojo skaičiaus skaidymo):

tegul "m = a% 100"

Kai veiksmas taikomas tam pačiam kintamam, kuriam priskirtas rezultatas, galite naudoti standartinius aritmetinius stenografavimo priskyrimo operatorius, kurie taip pat vadinami sudėtiniais priskyrimo operatoriais. Pavyzdžiui, papildomai turime:

tegul "m + = 15"

kuris yra lygus "m = m + 15". Norėdami atimti mes turime:

tegul "m - = 3"

kuris yra lygus "m = m - 3". Mes turime:

tegul "m / = 5"

kuris yra lygus "m = m / 5". Ir pagal modulį turime:

tegul "m% = 10"

kuris yra lygus "m = m% 10".

Be to, galite naudoti operatorius prieaugio ir sumažinimo :

tegul "m ++"

yra lygus "m = m + 1". Ir

tegul "m--"

yra lygi "m = m - 1".

Ir tada yra trijų "klausimo ženklų dvitaškio" operatorius, kuris grąžina vieną iš dviejų reikšmių, priklausomai nuo to, ar nurodyta sąlyga yra tiesa ar klaidinga. Pavyzdžiui

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

Šio užduoties pranešimo dešinėje pusėje vertinamas "0", jei kintamasis "m" yra mažesnis nei 9. Priešingu atveju jis vertinamas iki 1. Tai reiškia, kad "k" yra priskirtas "0", jei "m" yra mažesnis kitaip nei 9 ir "1".

Bendra klaustuko operatoriaus forma yra:

būklė? value-if-true: value-if-false

Plūduriuojančiojo taško aritmetika Bashe

Leisti operatorius veikia tik sveikiis aritmetinis režimas. Jei naudojate kintamojo taško aritmetinę vertę, galite naudoti, pavyzdžiui, GNU bc skaičiuoklę, kaip parodyta šiame pavyzdyje:

echo "32.0 + 1.4" | bc

"Vamzdžio" operatorius "|" perduoda aritmetinę išraišką "32.0 + 1.4" į bc skaičiuoklę, kuri grąžina tikrąjį skaičių. Echo komanda išspausdina rezultatą į standartinę išvestį.

Alternatyvus sintaksė aritmetikai

Šablonai gali būti naudojami norint įvertinti aritmetinę išraišką, kaip šiame pavyzdyje:

echo `expr $ m + 18`

Tai padidins 18 kintamojo reikšmės "m" reikšmę ir atspausdins rezultatą.

Norėdami priskirti skaičiavimo reikšmę kintamajam, galite naudoti lygiaverčio ženklo be tarpų aplink jį:

m = `expr $ m + 18`

Kitas būdas įvertinti aritmetines išraiškas yra naudoti dvigubas skliaustus. Pavyzdžiui:

((m * = 4))

Tai padvigubins kintamojo "m" vertę.

Be aritmetinio įvertinimo, "Bash" apvalkale pateikiami kiti programavimo konstruktai, tokie kaip " for-loops" , "in -loops" , conditionals , " functions" ir "subroutines" .