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 $ mTista 'tittestja dan mil-linja tal-kmand billi ddaħħal il-kodiċi li ġej:
ħalli "m = 4 * 1024"; echo $ mTista '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 $ mjekk 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.shWara dan tista 'tesegwixxiha bil-kmand:
./script1.shL-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-falzAritmetika 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" | bcL-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 .