I-Arithmetic ku-Bash

Ungeza kanjani izibalo ku-Script Bash

Nakuba i-Bash ingulimi lwe-script, inamakhono amaningi wenjongo yokuhlela uhlelo jikelele. Lokhu kuhlanganisa imisebenzi ye-arithmetic. Kukhona izinketho eziningi ze- syntax ongayisebenzisa ukuze uhlole ukuhlolwa kwe-arithmetic yenkulumo. Mhlawumbe ofundekayo kakhulu umyalo wokuvumela. Ngokwesibonelo

ake "m = 4 * 1024"

uzobala izikhathi ezingu-4 1024 futhi anikeze umphumela kuguquguquko "m".

Ungaphrinta umphumela ngokufaka isitatimende se- echo :

vumela "m = 4 * 1024" i-$ m

Ungahlola lokhu kusuka emgqeni wokulayisha ngokufaka ikhodi elandelayo:

ake "m = 4 * 1024"; beka u-$ m

Ungaphinda udale ifayela eliqukethe imiyalo ye-Bash, lapho kufanele usengeze umugqa phezulu kwefayela elicacisa uhlelo olufanele ukwenze ikhodi. Ngokwesibonelo:

#! / bin / bash ake "m = 4 * 1024" u-$ $ m

Ukucabanga ukuthi i-Bash ephathekayo itholakala ku- / bin / bash . Udinga futhi ukusetha izimvume zefayela lakho lokubhala ukuze lisebenze. Ucabanga ukuthi igama lefayela leskripthi ngu-script1.sh , ungabeka izimvume zokwenza ifayela lenzeke ngomyalo:

chmod 777 script1.sh

Ngemuva kwalokho ungayifeza ngomyalo:

./script1.sh

Ukusebenza kwe-arithmetic kufana nalabo abakhuluma ngezilimi ezijwayelekile njengohlelo lweJava no-C. Ngaphandle kokuphindaphindiwe, njengoba kuboniswe ngenhla, usebenzisa okungeziwe:

ake "m = a + 7"

noma ukususa:

ake "m = a - 7"

noma ukuhlukaniswa:

vumela "m = a / 2"

noma i-modulo (okusele ngemuva kokuhlukaniswa kwenani eliphelele):

ake "m =% 100"

Uma ukuhlinzwa kusetshenziselwa ukuhluka okufanayo lapho umphumela ubelwe khona ungasebenzisa ama-abtmetic standard abasebenzisi abanikezelayo, abhekiselwa nabo njengabanikazi bezinsiza ezihlanganisiwe. Isibonelo, ngokungezelela, sinakho:

ake "m + = 15"

okulingana no "m = m + 15". Ukususa sinalo:

vumela "m - = 3"

elilingana nelithi "m = m - 3". Ngokwahlukana sinakho:

ake "m / = 5"

elilingana nelithi "m = m / 5". Futhi nge-modulo, sinakho:

ake "m% = 10"

okulingana no "m = m% 10".

Ukwengeza, ungasebenzisa ama-operators okwenyukayo nokunciphisa :

ake "m ++"

lilingana nelithi "m = m + 1". Futhi

vumela "m--"

lilingana nelithi "m = m - 1".

Futhi-ke kukhona u-opharetha "umbuzo wombuzo we-mark-colon" we-ternari, obuyisela okukodwa kwamagugu amabili kuye ngokuthi ngabe isimo esibekiwe siqinisile noma singamanga. Ngokwesibonelo

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

Isandla sokunene salesi sitatimende sesabelo sihlola "0" uma isichazamazwi "m" singaphansi kwezingu-9. Uma kungenjalo, ihlolisisa ku-1. Lokhu kusho ukuthi inguquko "k" inikezwe "0" uma "m" ingaphansi kunama-9 futhi "1" kungenjalo.

Ifomu elijwayelekile lombuzo wombuzo-opharetha bekoloni ngu:

isimo? value-if-true: value-if-false

I-Arithmetic ye-Floating Point e-Bash

U-opharetha ovumelekile kuphela usebenza ngenani le-arithmetic. Ukuze uthole amaphuzu avela ku-arithmetic ongayisebenzisa isibonelo isibalo sokubala se-GNU njengoba siboniswe kulesi sibonelo:

bhala "32.0 + 1.4" | bc

I-"pipeline" opharetha "|" idlula inkulumo ye-arithmetic "32.0 + 1.4" ku-calculator ye-bc, ebuyisela inombolo yangempela. Umyalo we- echo ushintsha umphumela wokukhishwa okujwayelekile.

I-syntax ehlukile ye-Arithmetic

Ama-backticks (ama-quotes angemuva angasetshenziswa) angasetshenziselwa ukuhlola inkulumo ye-arithmetic njengalesi sibonelo:

qamba nge-expr $ m + 18`

Lokhu kuzongeza 18 kuya kwenani eliguquguqukayo "m" bese uprinte umphumela.

Ukuze unikeze inani le-compute kuyahlukahluka ongasebenzisa uphawu olulinganayo ngaphandle kwezikhala ezizungezile:

m = `expr $ m + 18`

Enye indlela yokuhlola izinkulumo ze-arithmetic ukusebenzisa ama-parenthesis kabili. Ngokwesibonelo:

((m * = 4))

Lokhu kuzokwenqabela inani leguquguquko "m".

Ngaphandle kokuhlolwa kwe-arithmetic, igobolondo le-Bash linikeza ezinye izinhlelo zokwakha, njenge -loops , ngenkathi-izikhiye , izimo zomzimba , nemisebenzi kanye nezinhlelo zokusebenza .