Aritmetika a Bash-ban

Hogyan lehet hozzáadni a számításokat a bashszkripthez?

Bár a Bash egy forgatónyelvi nyelv, elég nagy az általános célú programozási nyelv összes képessége. Ez magában foglalja a számtani funkciókat is. Számos szintaxis opció használható egy kifejezés számtani értékelésére. Talán a legolvasottabb a let parancs. Például

hagyjuk, hogy "m = 4 * 1024"

négyszer 1024-et fog kiszámítani, és az eredményt az "m" változóhoz rendelheti.

Az eredményt echo utasítással egészítheti ki:

hagyja, hogy "m = 4 * 1024" echo $ m

Ezt a parancssorból a következő kód beírásával tesztelheti:

hagyjuk, hogy "m = 4 * 1024"; echo $ m

Létrehozhat egy olyan fájlt is, amely tartalmazza a Bash parancsokat, mely esetben egy sorot kell hozzáadnia a fájl tetején, amely meghatározza a program végrehajtásához szükséges programot. Például:

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

feltételezve, hogy a Bash futtatható a / bin / bash könyvtárban található . Be kell állítania a parancsfájl engedélyeit, hogy végrehajtható legyen. Feltételezve, hogy a script fájl neve script1.sh , megadhatja a jogosultságokat, hogy a fájl végrehajtható legyen a parancsgal:

chmod 777 script1.sh

Ezután a következő paranccsal hajthatja végre:

./script1.sh

A rendelkezésre álló számtani műveletek hasonlítanak a szabványos programozási nyelvekhez hasonló Java-hoz és C-hoz. A fentiekben bemutatott multiplikáció mellett a következőket is használhatja:

legyen "m = a + 7"

vagy kivonás:

legyen "m = a - 7"

vagy divízió:

legyen "m = a / 2"

vagy modulo (a maradék egy egész osztódás után):

legyen "m = a% 100"

Ha egy műveletet ugyanarra a változóra alkalmazunk, amelyre az eredményt hozzárendeljük, használhatjuk a szabványos aritmetikai rövidítés hozzárendelést végző operátorokat, amelyeket összetett hozzárendelési operátoroknak is neveznek. Például a hozzáadáshoz:

hagyjuk, hogy "m + = 15"

amely egyenértékű "m = m + 15" értékkel. A kivonás érdekében:

legyen "m - = 3"

amely egyenértékű az "m = m - 3" értékkel. A divízió számára:

hagyjuk "m / = 5"

amely egyenértékű az "m = m / 5" értékkel. A modulo pedig:

hagyjuk "m% = 10"

ami "m = m% 10" -nek felel meg.

Emellett használhatja a növekményes és csökkentő operátorokat is:

legyen "m ++"

egyenérték "m = m + 1" értékkel. És

hagyd, "m--"

egyenérték "m = m - 1" értékkel.

Aztán ott van a terner "kérdőjel-kettőspont" operátor, amely két érték egyikét adja vissza, attól függően, hogy a megadott feltétel igaz-e vagy hamis. Például

hagyjuk, hogy "k = (m <9)? 0: 1"

Ez a hozzárendelési utasítás jobb oldala "0" értékű, ha az "m" változó kisebb, mint 9-nél. Ellenkező esetben 1 értéket ad. Ez azt jelenti, hogy a "k" változó "0" -ra van állítva, ha az "m" mint 9 és az "1" egyébként.

A kérdőjel-kettőspont operátor általános formája:

feltétel ? value-if-true: érték-ha-hamis

Lebegőpontos aritmetika a Bash-ban

A let operátor csak egész számtani értékkel működik. A lebegőpontos aritmetikában használhatja például a GNU bc számológépet, amint azt a példa mutatja:

echo "32.0 + 1.4" | időszámításunk előtt

A "cső" operátor "|" a "32.0 + 1.4" aritmetikai kifejezést átadja a bc számológépnek, ami visszaadja az igazi számot. Az echo parancs az eredményt a szabványos kimenetre nyomtatja.

Alternatív szintaxis az aritmetikához

A backticks (vissza egyéni idézőjelek) használható a számtani kifejezések kiértékeléséhez, mint a jelen példában:

echo `expr $ m + 18`

Ez 18-as értéket ad az "m" változó értékéhez, majd kinyomtatja az eredményt.

A számítási értéknek egy változóhoz való hozzárendeléséhez használhatja az egyenlő jelet, anélkül, hogy szóköz lenne:

m = `expr $ m + 18`

Az aritmetikai kifejezések kiértékelésének másik módja kettős zárójel használata. Például:

((m * = 4))

Ez megnégyszerezi az "m" változó értékét.

A számtani értékelés mellett a Bash shell más programozási konstrukciókat is kínál, például for-loops , while-hurkok , conditionals , and functions and subroutines .