Arithmetic in Bash

Sidee loo xisaabiyaa xisaabaadka Bashaalka

Inkasta oo Bash ah luuqada qoraalka ah, waxay leedahay wax badan oo awood u leh luuqadda barnaamijka guud ee guud. Tan waxaa ka mid ah hawlaha arithmetic. Waxaa jira tiro ka mid ah ikhtiyaaraadka syntax oo aad isticmaali kartid si aad uhesho qiimeynta arithmetic ee muujinta. Waxaa laga yaabaa in midka ugu aqrisan karo uu yahay amarka digniinta. Tusaale ahaan

ha "m = 4 * 1024"

waxay ku xisaabtamaan 4 jeer 1024 oo waxay u gudbinayaan natiijada "m".

Waxaad ku daabici kartaa natiijada adiga oo ku daraya hadal hadal:

ha "m = 4 * 1024" echo $ m

Waxaad tan ka tijaabin kartaa khadka taleefanka adiga oo soo galaya lambarka soo socda:

ha "m = 4 * 1024"; Dheeraad $ m

Waxa kale oo aad abuuri kartaa faylka ku jira amarrada Baay, markaa waa inaad ku darto xariiq ka saraysa faylka kaas oo qeexaya barnaamijka loo maleynayo in uu fulin lahaa koodka. Tusaale ahaan:

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

haddii la maleynayo in xukunka Bash wuxuu ku yaalaa / bin / bash . Waxaad sidoo kale u baahan tahay inaad sameysid ruqsadaha faylkaaga script si ay u fuliso. Haddii loo maleeyo magaca faylka faylka waa script1.sh , waxaad awood u yeelan kartaa rukhsadaha si aad u sameyso faylka la fulin karo amarka:

chmod 777 script1.sh

Dabadeed waxaad ku dari kartaa amarka:

./script1.sh

Hawlaha xisaabinta ee la heli karo waxay la mid yihiin kuwa ku jira luuqadaha barnaamijka caadiga ah sida Java iyo C. Ka sokow isku dhufashada, sida kor ku xusan, waxaad isticmaashaa daro:

ha "m = a + 7"

ama kala-goynta:

ha "m = a - 7"

ama qaybin:

ha "m = a / 2"

ama modulo (inta soo hartay ka dib qeybta hoose):

ha "m = a 100%"

Marka qalliin lagu dabaqo isbeddelka isku mid ah ee natiijada loo qoondeeyey waxaad isticmaali kartaa hawlwadeenada qoondaynta heerarka xisaabinta, kuwaas oo loo yaqaanno hawlwadeennada meelaynta. Tusaale ahaan, waxaa intaa dheer, waxaan haynaa:

ha "m + = 15"

taas oo u dhiganta "m = m + 15". Isu-xisaabinta waxaan leenahay:

ha "m - = 3"

taas oo u dhiganta "m = m - 3". Wixii kala qaybinta waxaan leenahay:

ha "m / = 5"

taas oo u dhiganta "m = m / 5". Iyo for modulo, waxaan leenahay:

ha "m% = 10"

taas oo u dhiganta "m = m 10%".

Intaa waxaa dheer, waxaad isticmaali kartaa kor uqaadayaasha iyo kor u qaadista :

ha "m ++"

waxay u dhigantaa "m = m + 1". Iyo

ha "m-"

waxay u dhigantaa "m = m - 1".

Ka dibna waxaa jira macmiilka "calaamad su'aal ah" calaamad, oo soo celiya mid ka mid ah labada qiimood iyadoo ku xiran hadday xaaladdu cayimantahay ama been tahay. Tusaale ahaan

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

Dhinaca midig ee qoraalka meeleeynta waxaa lagu qiimeeyaa "0" haddii variable "m" uu ka yar yahay 9. Haddii kale, waxa uu qiimeeyaa 1. Taas macnaheedu waa variable "k" ayaa loo qoondeeyey "0" haddii "m" ka yar yahay ka badan 9 iyo "1" haddii kale.

Foomka guud ee su'aalaha calaamad-u-qaadaha suuban waa:

xaalad qiime-haddii-run: qiime-haddii-been

Dhibcaha Dareemka Carafeed ee Baashka

Hawlwadeenku wuxu u shaqeeyaa kaliya xisaabinta xisaabta. Wixii dhibicda xisaabta arithmetic waxaad isticmaali kartaa tusaale ahaan GNU bc calculator sida lagu muujiyey tusaalahan:

echo "32.0 + 1.4" | bc

"Shaqeeyaha" tuubada "|" waxay ka gudbeysaa qoraalka arfiga "32.0 + 1.4" ee xisaabiyaha "bc calculator", kaas oo soo celiya lambarka dhabta ah. Amarka echo wuxuu natiijada soo saaraa natiijada caadiga ah.

Ereyga Kale ee Arithmetic

Backticks (xigashooyinka dhabta ah) ayaa loo isticmaali karaa si loo qiimeeyo tusmada xisaabinta sida tusaale ahaan:

echo 'expr $ m + 18`

Tani waxay ku dari doontaa 18 qiimaha variable "m" ka dibna daabac natiijada.

Si aad ugu qoondayso qiimaha xisaabeed ee doorsoomaha waxaad isticmaali kartaa calaamadda isku midka ah adoon lahayn meel ku xeeran:

m = 'expr $ m + 18`

Hab kale oo lagu qiimeeyo ereyada arithmetic waa in la isticmaalo ereyga laba-jibbaaran. Tusaale ahaan:

((m * = 4))

Tani waxay kudhufi doontaa qiimaha variable "m".

Marka laga reebo qiimeynta arithmetic, qolofka Bash wuxuu bixiyaa barnaamijyada kale ee barnaamijyada, sida wareegyada , wareegyada , xaaladaha , iyo hawlaha iyo subroutines .