Arithmetic sa Bash

Unsaon Pagdugang sa Kalkula sa usa ka Bash Script

Bisan tuod ang Bash usa ka pinulongan sa pagsulat, kini adunay daghang mga katakos sa usa ka pinulongan sa pagmugna sa kinatibuk-an nga katuyoan. Kini naglakip sa mga gimbuhaton sa aritmetika. Adunay ubay-ubay nga mga opsyon sa syntax nga imong magamit aron mapukaw ang pagtimbang-timbang sa usa ka ekspresyon sa aritmetika. Tingali ang labing mabasa mao ang sugo. Pananglitan

himoa nga "m = 4 * 1024"

ang pag-compute 4 nga mga panahon 1024 ug itudlo ang resulta ngadto sa variable nga "m".

Mahimo nimo maimprenta ang resulta pinaagi sa pagdugang sa usa ka pahayag sa echo :

ang "m = 4 * 1024" echo $ m

Mahimo nimo kini sulayan gikan sa command line pinaagi sa pagsulod sa mosunod nga code:

ang "m = 4 * 1024"; echo $ m

Mahimo usab ikaw makahimo og usa ka file nga naglangkob sa Bash nga mga sugo, diin kinahanglan nga magdugang ka usa ka linya sa ibabaw sa file nga nagtino sa programa nga unta ipatuman ang code. Pananglitan:

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

ang pag-asoy sa Bash executable nahimutang sa / bin / bash . Kinahanglan mo usab nga ibutang ang mga permiso sa imong file sa script aron kini mahimong ma-executable. Sa pag-asoy sa ngalan sa file sa script mao ang script1.sh , mahimo nimong itakda ang mga permiso aron mahimo ang file nga mahimo gamit ang command:

chmod 777 script1.sh

Human niana mahimo nimong ipatuman kini uban sa sugo:

./script1.sh

Ang anaa nga mga operasyon sa aritmetika susama sa sa mga standard programming languages ​​sama sa Java ug C. Gawas sa pagpadaghan, ingon sa gihulagway sa ibabaw, ikaw naggamit og dugang:

himoa nga "m = a + 7"

o pagbalhin:

himoa nga "m = a - 7"

o pagkabahin:

himoa nga "m = a / 2"

o modulo (ang nahibilin human sa usa ka integer division):

himoa nga "m = a% 100"

Sa diha nga ang usa ka operasyon gipadapat ngadto sa pareho nga variable nga diin ang resulta gitudlo nga imong magamit ang standard nga aritmetika nga shorthand assignment operators, nga gitawag usab nga compound assignment operators. Pananglitan, alang sa dugang, kita adunay:

himoa nga "m + = 15"

nga katumbas sa "m = m + 15". Alang sa pagpugong kita adunay:

Himoa nga "m - = 3"

nga katumbas sa "m = m - 3". Alang sa pagkabahin kita adunay:

ang "m / = 5"

nga katumbas sa "m = m / 5". Ug alang sa modulo, kita adunay:

Himoa nga "m% = 10"

nga katumbas sa "m = m% 10".

Dugang pa, mahimo nimo gamiton ang increment and decrement operators:

himoa nga "m ++"

katumbas sa "m = m + 1". Ug

Himoa nga "m--"

katumbas sa "m = m - 1".

Ug dayon anaa ang ternary nga "pangutana nga mark-colon" operator, nga nagbalik sa usa sa duha ka mga bili depende kung ang gitakda nga kahimtang tinuod o bakak. Pananglitan

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

Ang tuo nga kilid sa niini nga assignment nga pamahayag nag-evaluate sa "0" kung ang variable nga "m" dili moubos sa 9. Kung dili, kini mag-evaluate sa 1. Kini nagpasabot nga ang variable "k" gitudlo nga "0" kon "m" kay sa 9 ug "1" kon dili.

Ang kinatibuk-an nga matang sa pangutana nga mark-colon operator mao ang:

kahimtang? bili-if-true: value-if-false

Paglutaw nga Aritmetika sa Bash

Ang pabay-an nga magpahigayon lamang alang sa integer arithmetic. Alang sa floating point aritmetika nga imong magamit alang sa pananglitan ang calculator sa GNU bc nga gihulagway niini nga pananglitan:

echo "32.0 + 1.4" | bc

Ang "pipe" operator "|" molabay sa ekspresyon nga aritmetika nga "32.0 + 1.4" ngadto sa calculator sa bc, nga nagbalik sa tinuod nga numero. Ang echo command nagpatik sa resulta ngadto sa standard output.

Alternative Syntax for Arithmetic

Ang mga backtick (likod nga mga single quotes) mahimong gamiton aron mahibal-an ang usa ka ekspresyon nga aritmetika sama niini nga pananglitan:

echo `expr $ m + 18`

Kini makadugang sa 18 sa bili sa variable nga "m" ug unya i-print ang resulta.

Aron itudlo ang pagkalkula sa bili ngadto sa usa ka kausaban mahimo nimo gamiton ang managsama nga ilhanan nga walay mga luna sa palibot niini:

m = `expr $ m + 18`

Ang laing paagi sa pagtimbang-timbang sa mga pamahayag sa aritmetika mao ang paggamit sa double parenthesis. Pananglitan:

((m * = 4))

Kini mag-upat sa bili sa variable "m".

Gawas pa sa pagtimbang sa aritmetika, ang Bash shell naghatag sa uban pang mga programa nga pagtukod, sama sa for-loops , samtang-galong , kondisyon , ug mga gimbuhaton ug subroutines .