Aritmetik nan bach

Ki jan yo Ajoute Kalkil nan yon bach Script

Malgre bach se yon langaj scripting, li gen bèl anpil tout kapasite yo nan yon lang pwogramasyon jeneral objektif. Sa a gen ladan fonksyon aritmetik. Gen yon kantite opsyon sentaks ou ka itilize yo evoke evalyasyon aritmetik nan yon ekspresyon. Petèt youn ki pi lizib se kòmandman an kite . Pa egzanp

kite "m = 4 * 1024"

ap kalkile 4 fwa 1024 ak bay rezilta a varyab "m" la.

Ou ka enprime soti rezilta a pa ajoute yon deklarasyon eko :

kite "m = 4 * 1024" eko $ m

Ou ka teste sa a nan liy lan lòd pa rantre kòd sa a:

kite "m = 4 * 1024"; eko $ m

Ou kapab tou kreye yon dosye ki gen kòmandman yo bach, nan ka sa a ou ta dwe ajoute yon liy nan tèt la nan dosye a ki presize pwogram nan ki sipoze egzekite kòd la. Pa egzanp:

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

sipoze ègzèkutabl la bach ki sitiye nan / bin / bach . Ou bezwen tou mete autorisations yo nan dosye script ou konsa ke li se ègzèkutabl. Sipoze non an dosye script se script1.sh , ou ka mete autorisations yo fè ègzèkutabl nan dosye ak lòd la:

chmod 777 script1.sh

Apre sa, ou ka egzekite li ak kòmandman an:

./script1.sh

Operasyon aritmetik ki disponib yo sanble ak moun ki nan lang pwogram estanda tankou Java ak C. Anplis miltiplikasyon, jan yo ilistre pi wo a, ou itilize adisyon:

kite "m = yon + 7"

oswa soustraksyon:

kite "m = a - 7"

oswa divizyon:

kite "m = a / 2"

oswa modulo (rès la apre yon divizyon nonb antye relatif):

kite "m = yon% 100"

Lè yo aplike yon operasyon nan varyab la menm nan ki se rezilta a asiyen ou ka itilize operatè yo aritmetik aritmetik ajanda operatè, tou refere yo kòm operatè plasman konpoze. Pou egzanp, pou adisyon, nou genyen:

kite "m + = 15"

ki ekivalan a "m = m + 15". Pou soustraksyon nou genyen:

kite "m - = 3"

ki ekivalan a "m = m - 3". Pou divizyon nou genyen:

kite "m / = 5"

ki ekivalan a "m = m / 5". Ak pou modulo, nou genyen:

kite "m% = 10"

ki ekivalan a "m = m% 10".

Anplis de sa, ou ka itilize enkreman yo ak operatè dekritè :

kite "m + +"

se ekivalan a "m = m + 1". Ak

kite "m -"

se ekivalan a "m = m - 1".

Lè sa a, gen ternary "kesyon mak-kolon" operatè a, ki retounen youn nan de valè depann sou si kondisyon an espesifye se vre oswa fo. Pa egzanp

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

Bò dwat la nan deklarasyon sa a plasman evalye nan "0" si varyab "m" a se mwens pase 9. Sinon, li evalye a 1. Sa vle di varyab "k" la asiyen "0" si "m" se mwens pase 9 ak "1" otreman.

Fòm la an jeneral nan kesyon an mak-kolon operatè a se:

kondisyon? valè-si-vre: valè-si-fo

K ap flote aritmetik nan Bash

Operatè a kite sèlman travay pou nonb antye relatif. Pou aritmetik pwen k ap flote ou ka itilize pou egzanp GNU bc kalkilatris la jan yo montre nan egzanp sa a:

eko "32.0 + 1.4" | bc

"Tiyo" operatè a "|" pase ekspresyon aritmetik "32.0 + 1.4" nan kalkilatris bc a, ki retounen nimewo reyèl la. Kòmandman an eko simagri rezilta nan estanda pwodiksyon an.

Altènatif Sentaks pou Aritmetik

Bakticks (tounen yon sèl quotes) ka itilize pou evalye yon ekspresyon aritmetik tankou nan egzanp sa a:

eko `ekspr $ m + 18`

Sa a pral ajoute 18 a valè a nan varyab la "m" ak Lè sa a enprime soti rezilta a.

Pou asiyen valè a kalkile nan yon varyab ou ka itilize siy nan egal san espas alantou li:

m = `ekspr $ m + 18`

Yon lòt fason pou evalye ekspresyon aritmetik se pou itilize doub parantèz. Pa egzanp:

((m * = 4))

Sa a pral quadruple valè a nan varyab la "m".

Anplis evalyasyon aritmetik, Shell bach la bay lòt konstwi pwogram, tankou pou-pasan , pandan y ap-pasan , kondisyonèl , ak fonksyon ak subroutin .