Arithmetic in Bash

Nzira yekuwedzera maverengero kuBash Script

Kunyange zvazvo Bash iri rurimi rwemashoko, rine mazano akawanda ezvinangwa zvechinangwa chirongwa chekuita. Izvi zvinosanganisira mabasa echibvumirano. Pane dzimwe nzira dzakasiyana-siyana dzamunogona kushandisa nadzo kubudisa arithmetic kuongorora kwekutaura. Zvichida iyo inonyatsonaka yakawanda ndiyo murairo wekurega. Semuyenzaniso

regai "m = 4 * 1024"

ichaenzanisa 4 kanomwe 1024 uye igovera chigumisiro kune shanduro "m".

Iwe unogona kudhinda chigumisiro nekuwedzera chirevo chekunyora :

regai "m = 4 * 1024" echo $ m

Iwe unogona kuedza izvi kubva pamurairo wemirairo nekupinda kero inotevera:

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

Iwe unogonawo kugadzira faira rine mabhadha Bash, pane imwe nguva iwe unofanirwa kuwedzera mutsara kumusoro kwefaira inotsanangura purogiramu inofanirwa kuita code. Semuyenzaniso:

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

Kutora Bash rinotonga riri mu / bin / bash . Iwe unodawo kugadzirisa zvivako zvefaira rako re script kuitira kuti riitwe. Tichifunga kuti script file yezita iri script1.sh , unogona kuisa zvivigirisi kuita kuti faira ishandiswe nemurairo:

chmod 777 script1.sh

Mushure mokunge unogona kuzviita nemurairo:

./script1.sh

Izvo zvinowanika mashandisi arithmetic zvakafanana neaya ari mumitauro yakazara mitauro yakadai seJava neC kunze kwekuwedzera, sezvinoratidzwa pamusoro apa, unoshandisa kuwedzera:

regai "m = a + 7"

kana kubvisa:

regai "m = a-7"

kana kugovana:

regai "m = a / 2"

kana modulo (yakasiyiwa mushure mekugoverana kwenhamba):

regai "m = a% 100"

Apo operesi inoshandiswa kune imwechete yakasiyana iyo iyo mhinduro yacho inopiwa iwe unogona kushandisa yakawanda masvomiti shorthand assignment operators, iyo inonziwo majoka ekugovera vatengesi. Somuenzaniso, pakuwedzera, tine:

regai "m + = 15"

iyo yakaenzana ne "m = m + 15". Pamusoro pokubvisa tine:

regai "m - = 3"

iyo yakaenzana ne "m = m - 3". Nokuda kwekugoverana tine:

regai "m / = 5"

iyo yakaenzana ne "m = m / 5". Uye nokuda kwe modulo, tine:

regai "m% = 10"

iyo yakaenzana ne "m = m% 10".

Kuwedzerwa, unogona kushandisa zvinowedzera uye zvinoremekedzwa vashandi:

regai "m +" "

iyo yakaenzana ne "m = m + 1". Uye

regai "m--"

iyo yakaenzana ne "m = m - 1".

Uye ipapo pane ternary "mubvunzo-koni", mutengesi, unodzorera imwe yehutano huviri zvichienderana nekuti chinonzi chaicho chiri chechokwadi kana chechokwadi. Semuyenzaniso

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

Rutivi rworudyi rwemutsara uyu wekugovera rinotarisa ku "0" kana shanduko "m" iri pasi pe 9. Zvimwe, inotarisa ku 1. Izvi zvinoreva kuti shanduro "k" inopiwa "0" kana "m" iri pasi kupfuura 9 uye "1" zvisinei.

Nzira yakawanda yemubvunzo chiratidzo-colon operator ndeyokuti:

mamiriro ezvinhu? kukosha-kana-chokwadi: kukosha-kana-nhema

Floating Point Arithmetic in Bash

Mutambi wekurega chete anoshandira integer arithmetic. Nokuda kwechikonzero chinokomberedza aritemu iwe unogona kushandisa nenzira yeGNU bc calculator sezvinoratidzwa mumuenzaniso uyu:

echo "32.0 + 1.4" | bc

I "pipe" operator "|" inopfuudza aritendi inoreva "32.0 + 1.4" kune bc calculator, iyo inodzorera nhamba chaiye. Icho chirevo chekunyora chinonyora chigumisiro chacho kusvika kuhuwandu hwekubuda.

Alternative Syntax yeArithmetic

Rutsigiro (kumashure rimwe chete rutsva) rinogona kushandiswa kuongorora aritemu kutaura sezvinotevera mumuenzaniso uyu:

echo "expr $ m + 18`

Izvi zvinowedzera 18 kusvika kuhuwandu hwezvakashandurwa "m" uye zvinyora zvabuda.

Kugovera kukosha kwekushandisa kune shanduko iwe unogona kushandisa chiratidzo chakaenzana pasina nzvimbo dzakapoteredza:

m = `expr $ m + 18`

Imwe nzira yekuongorora mazwi echiArithmetic ndeyekushandisa kaviri kubereka. Semuyenzaniso:

((m * = 4))

Izvi zvichanyanya kuwedzera kukosha kweshanduko "m".

Kunze kweongororo yekuongorora, Bash shell inopa mamwe mapurogiramu ekugadzira, akadai se --loops , nguva--ops , maitiro, nemabasa uye masangano .