Arithmetic in Bash

Conas Ríomhanna a chur le Script Bash

Cé gur teanga scríbhneoireachta é Bash, tá go leor cumais aige go léir le teanga cláir chuspóir. Áirítear leis seo feidhmeanna uimhríochta. Tá roinnt roghanna comhréire ann a d'fhéadfá a úsáid chun meastóireacht uimhriúil a léiriú ar léiriú. B'fhéidir gurb é an ceann is inléite ná an t-ordú ligean . Mar shampla

lig "m = 4 * 1024"

déanfaidh sé 4 uair 1024 a ríomh agus an toradh a shannadh don "m" athraitheach.

Is féidir leat an toradh a phriontáil trí ráiteas macalla a chur leis:

lig "m = 4 * 1024" macalla $ m

Is féidir leat é seo a thástáil ón líne orduithe tríd an gcód seo a leanas a iontráil:

lig "m = 4 * 1024"; macalla $ m

Is féidir leat comhad a chruthú ina bhfuil na horduithe Bash, agus ba chóir duit líne a chur ag barr an chomhaid a shonraíonn an clár a cheapann an cód a fhorghníomhú. Mar shampla:

#! / bin / bash a ligean "m = 4 * 1024" macalla $ m

ag glacadh leis go bhfuil an inrite Bash suite i / bin / bash . Ní mór duit freisin ceadanna do chomhad script a shocrú ionas go mbeidh sé inrite. Ag glacadh leis gurb é script1.sh ainm an chomhaid script, is féidir leat na ceadanna a shocrú chun an comhad inrite a dhéanamh leis an gceannas:

chmod 777 script1.sh

Tar éis gur féidir leat é a fhorghníomhú leis an ordú:

./script1.sh

Tá na hoibríochtaí uimhríochta atá ar fáil cosúil leo siúd i dteangacha cláir chaighdeánacha cosúil le Java agus C. Chomh maith le heolrú, mar a léirítear thuas, úsáideann tú an méid seo a leanas:

lig "m = a + 7"

nó dealú:

lig "m = a - 7"

nó roinn:

lig "m = a / 2"

nó modulo (an chuid eile tar éis slánuimhir):

lig "m = a% 100"

Nuair a chuirtear oibríocht i bhfeidhm ar an athróg céanna ar a shannfar an toradh, is féidir leat na hoibreoirí sannadh gearrthréimhse uimhríochta caighdeánach a úsáid, dá ngairtear oibreoirí sannadh cumaisc freisin. Mar shampla, mar sin a leanas, ní mór dúinn:

lig "m + = 15"

atá comhionann le "m = m + 15". Mar gheall ar dhealú atá againn:

lig "m - = 3"

atá comhionann le "m = m - 3". Le haghaidh roinnte ní mór dúinn:

lig "m / = 5"

atá comhionann le "m = m / 5". Agus le haghaidh modulo, ní mór dúinn:

lig "m% = 10"

atá comhionann le "m = m% 10".

Ina theannta sin, is féidir leat na hionadaithe incriminte agus laghdaithe a úsáid :

lig "m ++"

is ionann agus "m = m + 1". Agus

lig "m--"

Is ionann é agus "m = m - 1".

Agus ansin tá an t-oibreoir "ceist marc-colon" ternary, a thagann ar ais ar cheann de dhá luachanna ag brath ar cibé an bhfuil an coinníoll sonraithe fíor nó bréagach. Mar shampla

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

Déanann an taobh deas den ráiteas sannadh seo meastóireacht ar "0" má tá an "m" athraitheach níos lú ná 9. Seachas sin, déanann sé meastóireacht air 1. Ciallaíonn sé seo go n-shanntar an t-athróg "k" "0" má tá "m" níos lú ná 9 agus "1" ar shlí eile.

Is é foirm ghinearálta an oibreora marc-chárta ceist ná:

riocht? luach-más fíor: luach-más bréagach

Arithmetic Pointe Snámh i Bash

Ní oibríonn an t-oibreoir ligean ach amháin le haghaidh uimhríocht uimhríochta. Le haghaidh uimhríocht phointe bóthair is féidir leat úsáid a bhaint as an áireamhán GNU bc mar a léirítear san sampla seo mar shampla:

macalla "32.0 + 1.4" | bc

An t-oibreoir "píopa" "|" téann an abairt uimhríochta "32.0 + 1.4" chuig an áireamhán bc, a chuireann an uimhir fíor ar ais. Cuireann an t-ordú macalla an toradh ar an aschur caighdeánach.

Comhréire Malartach le haghaidh Uimhríocht

Is féidir Backticks (tuairimí aonair ar ais) a úsáid chun léiriú uimhríochta a mheas mar atá sa sampla seo:

macalla `expr $ m + 18`

Cuirfidh sé seo 18 le luach an athróg "m" agus ansin an toradh a phriontáil.

Chun an luach ríomh a shannadh d'athróg is féidir leat an comhartha comhionann a úsáid gan spásanna timpeall air:

m = `expr $ m + 18`

Bealach eile chun meastóireacht a dhéanamh ar léirmhíniú uimhríochta ná babhta dúbailte a úsáid. Mar shampla:

((m * = 4))

Déanfaidh sé seo luach an athróg "m".

Chomh maith le meastóireacht uimhríochta, soláthraíonn an bhlaosc Bash tógálacha cláir eile, mar shampla lúbanna , lúbáin , coinníollaí , agus feidhmeanna agus fothrianta .