Hvernig á að bæta við útreikningum í Bash Script
Þó Bash er forskriftarþarfir, hefur það nánast alla möguleika almennt forritunarmál. Þetta felur í sér arðsemi. There ert a tala af valkostum setningafræði sem þú getur notað til að vekja reikninga mat á tjáningu. Kannski er læsilegasti maðurinn að láta skipta. Til dæmis
láta "m = 4 * 1024"mun reikna 4 sinnum 1024 og úthluta niðurstöðunni til breytu "m".
Þú getur prentað út niðurstöðurnar með því að bæta við echo yfirlýsingu:
látið "m = 4 * 1024" echo $ mÞú getur prófað þetta frá stjórn línunnar með því að slá inn eftirfarandi kóða:
láta "m = 4 * 1024"; echo $ mÞú getur líka búið til skrá sem inniheldur Bash skipanirnar. Í því tilviki ættir þú að bæta við línu efst á skránni sem tilgreinir forritið sem er ætlað að framkvæma kóðann. Til dæmis:
#! / bin / bash láta "m = 4 * 1024" echo $ mmiðað við að Bash executable sé staðsett í / bin / bash . Þú þarft einnig að setja heimildir handritaskrárinnar svo að það sé executable. Miðað við handritið er nafnið script1.sh , þú getur stillt heimildir til að gera skráin executable með stjórninni:
chmod 777 script1.shEftir það getur þú framkvæmt það með skipuninni:
./script1.shFyrirliggjandi reikningsaðgerðir eru svipaðar og í venjulegu forritunarmálum eins og Java og C. Auk margfeldis, eins og sýnt er hér að framan, notar þú viðbót:
láta "m = a + 7"eða frádráttur:
láta "m = a - 7"eða deild:
láta "m = a / 2"eða modulo (restin eftir heiltala deild):
láta "m = a% 100"Þegar aðgerð er beitt á sömu breytu sem niðurstaðan er úthlutað er hægt að nota stöðluðu reikningsskilatækni, sem einnig er nefnt rekstrarfyrirtæki samsettra verkefna. Til dæmis, til viðbótar höfum við:
láta "m + = 15"sem jafngildir "m = m + 15". Fyrir frádráttu höfum við:
láta "m - = 3"sem jafngildir "m = m - 3". Fyrir deild höfum við:
láta "m / = 5"sem jafngildir "m = m / 5". Og fyrir modulo, höfum við:
láta "m% = 10"sem jafngildir "m = m% 10".
Að auki er hægt að nota hækkunar- og minnkunaraðgerðir :
láta "m + +"jafngildir "m = m + 1". Og
láta "m--"jafngildir "m = m - 1".
Og þá er ternary "question mark-colon" rekstraraðilinn, sem skilar einum af tveimur gildum eftir því hvort tilgreint ástand er satt eða ósatt. Til dæmis
láttu "k = (m <9)? 0: 1"Hægri hlið þessa verkefnisyfirferðar metur á "0" ef breytu "m" er minna en 9. Annars metur það á 1. Þetta þýðir að breytu "k" er úthlutað "0" ef "m" er minna en 9 og "1" annars.
Almennt form spurningamerki-ristill rekstraraðila er:
ástand? gildi-ef-satt: gildi-ef-rangtFljótandi tölur í Bash
Leyfið rekstraraðili aðeins að vinna fyrir heildarreikninga. Fyrir reikninga með flotum punktum er hægt að nota til dæmis GNU bc reiknivélina eins og sýnt er í þessu dæmi:
echo "32.0 + 1.4" | bcThe "pípa" rekstraraðila "|" fer með tölfræðilega tjáningu "32.0 + 1.4" í bc reiknivélina, sem skilar raunverulegu númerinu. Echo stjórnin prentar niðurstöðuna í staðlaða framleiðsluna.
Önnur setningafræði fyrir tölur
Hægt er að nota backticks (til baka tilvitnanir) til að meta reikninga eins og í þessu dæmi:
Echo `expr $ m + 18`Þetta mun bæta 18 við gildi breytu "m" og síðan prenta út niðurstöðuna.
Til að tengja reikningsgildið við breytu er hægt að nota jafnt táknið án rýmis í kringum það:
m = `expr $ m + 18`Önnur leið til að meta reikningsleg tjáning er að nota tvöfalda sviga. Til dæmis:
((m * = 4))Þetta mun fjórða gildi breytu "m".
Að auki reiknað mat, gefur Bash skelið aðrar forritunarmyndir, eins og for-lykkjur , meðan á lykkjur , skilyrði og aðgerðir og undirlínur .