Arithmetic hauv Bash

Yuav ua li cas ntxiv Cov Nyiaj Tshawb Fawb rau Npau Taws Hauv Ntiajteb

Txawm hais tias Bash yog lus scripting, nws muaj ntau yam zoo nkauj rau tag nrho cov peev xwm ntawm hom lus programming. Qhov no muaj xws li kev siv lub zauv. Muaj ntau ntau cov kev xaiv syntax uas koj tuaj yeem siv tau los qhia txog kev ntsuam xyuas ntawm qhov kev ntsuam xyuas. Tej zaum qhov nyeem tau tshaj plaws yog qhov hais kom cia . Piv txwv

Cia "m = 4 * 1024"

yuav xam 4 zaug 1024 thiab muab lub txiaj ntsig kom tau qhov txawv ntawm "m".

Koj tuaj yeem luam tawm cov txiaj ntsig ntawm los ntawm kev ntxiv ib nqe lus zais:

Cia "m = 4 * 1024" echo $ m

Koj tuaj yeem kuaj qhov no los ntawm kab lus hais los ntawm kev nkag mus rau hauv cov cai nram qab no:

Cia "m = 4 * 1024"; ncha $ m

Koj tuaj yeem tsim cov ntaub ntawv uas muaj cov lus txib ntawm Bash, uas yog qhov koj yuav tsum tau ntxiv ib kab rau saum toj kawg nkaus ntawm cov ntaub ntawv uas qhia meej txog qhov kev pab cuam uas yuav tsum tau ua qhov code. Piv txwv li:

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

Piv tias Bash executive executable nyob hauv / hauv / pob . Koj kuj yuav tsum teev cov kev tso cai ntawm koj cov ntawv thov kom nws ua tiav. Assuming tsab ntawv npe rau tsab ntawv no yog script1.sh , koj tuaj yeem teev cov kev tso cai los ua kom cov ntaub ntawv tiav nrog cov lus txib:

chmod 777 script1.sh

Tom qab ntawd koj tuaj yeem coj nws nrog cov lus txib:

./script1.sh

Cov kev ua lag luam uas muaj nyob hauv no zoo ib yam li cov neeg hauv cov txheej txheem programming xws li Java thiab C. Tsis tas li ntawm kev sib npaug, raws li qhia saum toj no, koj siv kev ntxiv:

cia "m = a + 7"

lossis rho tawm:

cia "m = a - 7"

lossis faib:

cia "m = a / 2"

lossis modulo (qhov seem tom qab ib qho kev faib ua integer):

cia "m = ib% 100"

Thaum ua haujlwm rau tib qhov txawv txav uas qhov tshwm sim tau muab rau koj tuaj yeem siv tus txheej txheem ntawm tus neeg ua haujlwm (standard arithmetic shorthand assignment operator), uas yog hu ua compound assignment operators. Piv txwv, rau qhov ntxiv, peb muaj:

Cia "m + = 15"

uas yog sib npaug rau "m = m + 15". Rau kev sib rho peb muaj:

cia "m - = 3"

uas zoo ib yam li "m = m - 3". Rau faib peb muaj:

cia "m / = 5"

uas yog sib npaug li "m = m / 5". Thiab rau modulo, peb muaj:

cia "m% = 10"

uas yog sib npaug ntawm "m = m 10%".

Tsis tas li ntawd, koj tuaj yeem siv qhov kev nce qib thiab kev txiav nyiaj poob haujlwm:

cia "m ++"

yog sib npaug li "m = m + 1". Thiab

Cia "m--"

yog sib npaug li "m = m - 1".

Thiab tom qab ntawd nws muaj qhov ternary "question mark-colon", uas rov qab los ntawm ib qho ntawm ob qhov tseem ceeb raws li seb qhov kev cai tswjhwm muaj tseeb los yog tsis tseeb. Piv txwv

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

Txoj cai ntawm sab nraud ntawm daim ntawv tso cai no ntsuam xyuas rau "0" yog tias qhov txawv ntawm "m" tsawg tshaj 9. Txwv tsis pub, nws ntsuam xyuas 1. Qhov no txhais tau hais tias qhov "k" tau muab "0" yog "m" tsawg dua tshaj 9 thiab "1" lwm yam.

Daim ntawv ntawm lo lus nug kos-tus neeg tsav tsheb yog:

mob? value-if-true: value-if-false

Floating Point Arithmetic hauv Bash

Tus neeg teb xov tooj cia tsuas ua haujlwm rau cov zauv. Rau floating point arithmetic koj siv tau piv txwv rau tus GNU bc tshuab xam pom raws li hauv qhov kev piv txwv no:

ncha "32.0 + 1.4" | bc

Tus "yeeb" tus neeg teb xov tooj "|" kis ntawm kev piav qhia txog "32.0 + 1.4" rau lub bc calculator, uas rov rau tus zauv tiag tiag. Cov lus hais echo luam tawm cov txiaj ntsig ntawm cov qauv tso tawm.

Lwm Syntax rau Arithmetic

Backticks (rov qab quotes) yuav siv tau los soj ntsuam ib qho kev qhia ua ke xws li hauv qhov piv txwv no:

echo 'expr $ m + 18`

Qhov no yuav ntxiv 18 rau qhov nqi ntawm qhov sib txawv ntawm "m" thiab mam li sau tawm cov lus no.

Los muab tus zauv rau tus nqi sib txawv rau ib qho uas koj siv tau qhov sib npaug sib npaug nrog tsis muaj chaw nyob ib ncig ntawm nws:

m = 'expr $ m + 18`

Lwm txoj kev ntsuam xyuas cov kab zauv uas yog kev siv cov lus qhia yog siv ob chav parenthesis. Piv txwv li:

((m * = 4))

Qhov no yuav quadruple tus nqi ntawm qhov variable "m".

Dhau li ntawm kev ntsuam xyuas kev ntsuam xyuas, Bash lub plhaub muab lwm txoj hauv kev ua yeeb yam, xws li rau-loops , thaum-loops , conditionals , thiab functions thiab subroutines .