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 $ mEzt a parancssorból a következő kód beírásával tesztelheti:
hagyjuk, hogy "m = 4 * 1024"; echo $ mLé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 $ mfelté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.shEzután a következő paranccsal hajthatja végre:
./script1.shA 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-hamisLebegő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őttA "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 .