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 $ mOu ka teste sa a nan liy lan lòd pa rantre kòd sa a:
kite "m = 4 * 1024"; eko $ mOu 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 $ msipoze è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.shApre sa, ou ka egzekite li ak kòmandman an:
./script1.shOperasyon 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-foK 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 .