Aritmetika f'Bash

Kif Żid Kalkoli f'Sigaf Bash

Għalkemm Bash hija lingwa tal-kitba, għandha pjuttost il-kapaċitajiet kollha ta 'lingwa ta' programmar għal skopijiet ġenerali. Dan jinkludi funzjonijiet aritmetiċi. Hemm numru ta 'għażliet ta' sintassi li tista 'tuża biex tevoka evalwazzjoni aritmetika ta' espressjoni. Forsi l-aktar waħda li tinqara hi l-kmand let . Pereżempju

ħalli "m = 4 * 1024"

se jikkwota 4 darbiet 1024 u jassenja r-riżultat għall-varjabbli "m".

Tista 'tipprintja r-riżultat billi żżid dikjarazzjoni ta' l- eke :

ħalli "m = 4 * 1024" echo $ m

Tista 'tittestja dan mil-linja tal-kmand billi ddaħħal il-kodiċi li ġej:

ħalli "m = 4 * 1024"; echo $ m

Tista 'wkoll toħloq fajl li jkun fih il-kmandi tal-Bash, f'liema każ għandek iżżid linja fin-naħa ta' fuq tal-fajl li tispeċifika l-programm li suppost teżegwixxi l-kodiċi. Pereżempju:

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

jekk wieħed jassumi li l-executable tal-Bash jinsab fi / bin / bash . Għandek bżonn ukoll li tistabbilixxi l-permessi tal-fajl ta 'l-iskrittura tiegħek sabiex tkun eżegwibbli. Jekk wieħed jassumi li l-isem tal-fajl b'kitba huwa script1.sh , tista 'tistabbilixxi l-permessi biex tagħmel il-fajl eżekutibbli mal-kmand:

chmod 777 script1.sh

Wara dan tista 'tesegwixxiha bil-kmand:

./script1.sh

L-operazzjonijiet aritmetiċi disponibbli huma simili għal dawk fil-lingwi ta 'programmar standard bħal Java u C. Minbarra l-multiplikazzjoni, kif muri hawn fuq, tuża żjieda:

ħalli "m = a + 7"

jew tnaqqis:

ħalli "m = a - 7"

jew diviżjoni:

ħalli "m = a / 2"

jew modulu (il-bqija wara diviżjoni ta 'l-eqreb numru sħiħ):

ħalli "m =% 100"

Meta operazzjoni hija applikata għall-istess varjabbli li għaliha r-riżultat huwa assenjat tista 'tuża l-operaturi aritmetiċi ta' assenjazzjoni ta 'tajpisti standard, imsejħa wkoll bħala operaturi ta' assenjazzjonijiet komposti. Per eżempju, għal żieda, għandna:

ħalli "m + = 15"

li huwa ekwivalenti għal "m = m + 15". Għat-tnaqqis għandna:

ħalli "m - = 3"

li huwa ekwivalenti għal "m = m - 3". Għad-diviżjoni għandna:

ħalli "m / = 5"

li huwa ekwivalenti għal "m = m / 5". U għal modulo, għandna:

ħalli "m% = 10"

li huwa ekwivalenti għal "m = m% 10".

Barra minn hekk, tista 'tuża l-operaturi tal- inkrement u t- tnaqqis :

ħalli "m ++"

huwa ekwivalenti għal "m = m + 1". U

ħalli "m--"

huwa ekwivalenti għal "m = m - 1".

U mbagħad hemm l-operatur ternarju "mark tal-mistoqsijiet-kolon", li jirritorna wieħed miż-żewġ valuri skond jekk il-kundizzjoni speċifikata hijiex vera jew falza. Pereżempju

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

In-naħa tal-lemin ta 'din id-dikjarazzjoni ta' assenjazzjoni tevalwa għal "0" jekk il-varjabbli "m" hija inqas minn 9. Inkella, tevalwa 1. Dan ifisser li l-varjabbli "k" hija assenjata "0" jekk "m" hija inqas minn 9 u "1" inkella.

Il-forma ġenerali tal-operatur tal-kolon tal-mistoqsija hija:

kundizzjoni? valur-jekk-veru: valur-jekk-falz

Aritmetika tal-Punt Flotanti f'Bash

L-operatur let biss jaħdem għal aritmetika sħiħa. Għal aritmetika ta 'punt varjabbli tista' tuża pereżempju l-kalkulatur tal-GNU bc kif muri f'dan l-eżempju:

eku "32.0 + 1.4" | bc

L-operatur "pajp" "|" jgħaddi l-espressjoni aritmetika "32.0 + 1.4" għall-kalkulatur bc, li jirritorna n-numru reali. Il-kmand tal- eku jimpressjona r-riżultat għall-output standard.

Sintassi alternattiva għall-Aritmetika

Backticks (lura kwotazzjonijiet singoli) jistgħu jintużaw biex tevalwa espressjoni aritmetika bħal f'dan l-eżempju:

Echo 'expr $ m + 18 "

Dan se jżid 18 mal-valur tal-varjabbli "m" u mbagħad jistampa r-riżultat.

Biex tassenja l-valur tal-kalkolu għal varjabbli tista 'tuża s-sinjal ugwali mingħajr spazji madwaru:

m = 'expr $ m + 18'

Mod ieħor biex tevalwa l-espressjonijiet aritmetiċi huwa l-użu ta 'parentesi doppja. Pereżempju:

((m * = 4))

Dan se jikkwadruplika l-valur tal-varjabbli "m".

Minbarra l-evalwazzjoni aritmetika, il-qoxra ta 'Bash tipprovdi kostruzzjonijiet oħra ta' programmar, bħal for-loops , while-loops , kundizzjonjiet u funzjonijiet u subutini .