Aritmetika v Bash

Ako pridať výpočty do skriptu Bash

Hoci Bash je skriptovací jazyk, má skoro všetky možnosti univerzálneho programovacieho jazyka. To zahŕňa aritmetické funkcie. Existuje niekoľko možností syntaxe, ktoré môžete použiť na evokovanie aritmetického hodnotenia výrazu. Pravdepodobne najviac čitateľný je príkaz let . Napríklad

nechajte "m = 4 * 1024"

vypočíta 4 krát 1024 a priradí výsledok premennej "m".

Výsledok môžete vytlačiť pridaním výpisu ozveny :

nechajte "m = 4 * 1024" echo $ m

Môžete to vyskúšať z príkazového riadku zadaním nasledujúceho kódu:

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

Môžete tiež vytvoriť súbor obsahujúci príkazy Bash, v takom prípade by ste mali pridať riadok v hornej časti súboru, ktorý špecifikuje program, ktorý má spustiť kód. Napríklad:

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

za predpokladu, že spustiteľný súbor Bash sa nachádza v priečinku / bin / bash . Tiež je potrebné nastaviť oprávnenia vášho súboru skriptu tak, aby bol spustiteľný. Predpokladajme, že názov súboru skriptu je script1.sh , môžete nastaviť oprávnenia, aby sa súbor spustil pomocou príkazu:

chmod 777 script1.sh

Potom ho môžete spustiť pomocou príkazu:

./script1.sh

Dostupné aritmetické operácie sú podobné tým, ktoré sa nachádzajú v štandardných programovacích jazykoch, ako je Java a C. Okrem násobenia, ako je ilustrované vyššie, používate pridanie:

nechajte "m = a + 7"

alebo odčítanie:

nechajte "m = a - 7"

alebo divízie:

nechajte "m = a / 2"

alebo modulo (zvyšok po celočíselnom rozdelení):

nechajte "m = a% 100"

Ak sa použije operácia na rovnakú premennú, ktorej je priradený výsledok, môžete použiť štandardné aritmetické operátory priradenia skratky, ktoré sa tiež nazývajú operátori priradenia kombinácií. Napríklad pre pridanie máme:

nechajte "m + = 15"

ktorá je ekvivalentná "m = m + 15". Na odčítanie máme:

nechajte "m - = 3"

ktorá je ekvivalentná "m = m - 3". Pre delenie máme:

nechajte "m / = 5"

ktorá je ekvivalentná "m = m / 5". A pre modulo máme:

nechajte "m% = 10"

ktorá je ekvivalentná "m = m% 10".

Okrem toho môžete použiť prírastkové a dekrementové operátory:

nechajte "m ++"

sa rovná "m = m + 1". a

nech "m--"

je ekvivalentom "m = m - 1".

A potom je trojčlenný operátor "otazník-dvojbodka", ktorý vráti jednu z dvoch hodnôt v závislosti od toho, či je daná podmienka pravdivá alebo nepravdivá. Napríklad

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

Pravá strana tohto príkazu priradenia sa vyhodnotí na hodnotu "0", ak je premenná "m" menšia ako 9. V opačnom prípade sa hodnotí na hodnotu 1. To znamená, že premenná "k" je priradená "0", ak je "m" ako 9 a "1" inak.

Všeobecná forma operátora otázky:

podmienka? hodnota-if-true: hodnota-if-false

Aritmetika s pohyblivým bodom v Bash

Prevádzkovateľ letov pracuje iba pre celočíselnú aritmetiku. V prípade aritmetiky s pohyblivou rádovou čiarkou môžete použiť napríklad kalkulačku GNU bc, ako je ilustrované v tomto príklade:

echo "32.0 + 1.4" bc

Operátor "potrubia" "|" " prenesie aritmetický výraz "32.0 + 1.4" do kalkulačky bc, ktorá vracia skutočné číslo. Príkaz echo vytlačí výsledok na štandardný výstup.

Alternatívna syntax pre aritmetiku

Základy (zadné jednoduché úvodzovky) možno použiť na vyhodnotenie aritmetického výrazu ako v tomto príklade:

echo `expr $ m + 18`

Týmto sa pripočíta hodnota 18 k hodnote premennej "m" a výsledok sa vytlačí.

Ak chcete priradiť vypočítanú hodnotu premennej, môžete ju použiť bez medzery okolo nej:

m = "expr $ m + 18"

Ďalším spôsobom hodnotenia aritmetických výrazov je použitie dvojitých zátvoriek. Napríklad:

((m * = 4))

Tým sa štvornásobne zvýši hodnota premennej "m".

Okrem aritmetického vyhodnotenia poskytuje shell Bash aj ďalšie programové konštrukty, ako sú for-slučky , while-slučky , podmnožiny a funkcie a podprogramy .