Aritmeettinen Bashissa

Kuinka lisätä laskutoimitukset komentotiedostoon

Vaikka Bash on kirjoituskieli, sillä on melkein kaikki yleiskäyttöisen ohjelmointikielen ominaisuudet. Tämä sisältää aritmeettisia funktioita. Useita syntaksivaihtoehtoja voit käyttää ilmaisun aritmeettisen arvioinnin herättämiseen. Ehkä kaikkein luettavissa on let komento. Esimerkiksi

anna "m = 4 * 1024"

laskee 4 kertaa 1024 ja antaa tuloksen muuttujaan "m".

Voit tulostaa tuloksen lisäämällä echo- lauseen:

anna "m = 4 * 1024" echo $ m

Voit testata tämän komentoriviltä kirjoittamalla seuraavan koodin:

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

Voit myös luoda Bash-komentoja sisältävän tiedoston, jolloin sinun on lisättävä viiva sen tiedoston yläosassa, joka määrittää ohjelman, jonka on tarkoitus suorittaa koodi. Esimerkiksi:

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

olettaen, että Bash-suoritustiedosto sijaitsee / bin / bash . Sinun on myös asetettava komentotiedoston käyttöoikeudet niin, että se on suoritettava. Olettaen, että komentotiedoston nimi on script1.sh , voit asettaa oikeudet tehdä tiedoston suoritettavaksi komennolla:

chmod 777 script1.sh

Tämän jälkeen voit suorittaa sen komennolla:

./script1.sh

Käytettävissä olevat aritmeettiset operaatiot ovat samanlaisia ​​kuin tavallisissa ohjelmointikieleissä, kuten Java ja C: ssä. Kuten edellä on kuvattu, lisätään lisäksi:

anna "m = a + 7"

tai vähennys:

anna "m = a - 7"

tai jako:

anna "m = a / 2"

tai modulo (loput kokonaislukujaon jälkeen):

anna "m = a% 100"

Kun operaatio kohdistetaan samaan muuttujaan, jolle tulos on osoitettu, voit käyttää tavanomaisia ​​aritmeettisia lyhenteitä osoittavia operaattoreita, joita kutsutaan myös yhdisteen luovutusoperaattoreiksi. Esimerkiksi lisäämistä varten meillä on:

anna "m + = 15"

joka vastaa "m = m + 15". Jotta vähennys lasketaan, meillä on:

anna "m - = 3"

joka vastaa "m = m - 3". Divisioona on:

anna "m / = 5"

joka vastaa "m = m / 5". Moduulille meillä on:

anna "m% = 10"

joka vastaa "m = m% 10".

Lisäksi voit käyttää lisäys- ja vähennysoperaattoreita :

anna "m ++"

vastaa "m = m + 1". Ja

anna "m--"

vastaa "m = m - 1".

Ja sitten on kolmasosa "kysymysmerkki-kaksoispiste" -operaattori, joka palauttaa yhden arvon kahdesta arvosta sen mukaan, onko määritetty ehto tosi vai epätosi. Esimerkiksi

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

Tämän määrityslausekkeen oikea puoli arvioi "0", jos muuttujan "m" on pienempi kuin 9. Muussa tapauksessa se arvioi arvoon 1. Tämä tarkoittaa, että muuttujalla "k" annetaan "0", jos "m" on vähemmän kuin 9 ja "1" muuten.

Kysymysmerkki-kaksoispiste operaattorin yleinen muoto on:

kunnossa? arvo-if-true: value-if-false

Floating Point aritmeettinen Bashissa

Antaa operaattori toimii vain kokonaisluvun aritmeettiseksi. Liukuluku aritmeettista voit käyttää esimerkiksi tässä esimerkissä kuvattua GNU bc-laskinta:

echo "32.0 + 1.4" | BC

"Putkisto" -operaattori "|" siirtää aritmeettisen lausekkeen "32.0 + 1.4" bc-laskimeen, joka palauttaa todellisen numeron. Echo- komento tulostaa tuloksen standardilähtöön.

Vaihtoehtoinen syntaksi aritmeettiselle

Paluumatkoja (takaisin yksittäisiä lainauksia) voidaan käyttää aritmeettisen ilmeen arvioimiseen kuten tässä esimerkissä:

echo `expr $ m + 18`

Tämä lisää 18 muuttujan "m" arvoon ja tulostaa sitten tuloksen.

Laskentaarvon määrittämiseksi muuttujalle voit käyttää tasa-arvoa ilman välilyöntejä sen ympärillä:

m = `expr $ m + 18`

Toinen tapa aritmeettisten ilmiöiden arvioimiseksi on käyttää kaksinkertaista suluetta. Esimerkiksi:

((m * = 4))

Tämä nelinkertaistaa muuttujan "m" arvon.

Aritmeettisen arvioinnin ohella Bash-kuori tarjoaa myös muita ohjelmointirakenteita, kuten for-silmukoita , while-silmukoita , ehdollisia ehtoja sekä funktioita ja alirutiineja .