Indhold
- Sådan føjes beregninger til et bas-script
- Flydende aritmetik i bash
- Alternativ syntaks til aritmetik
Sådan føjes beregninger til et bas-script
Selvom Bash er et scriptingsprog, har det stort set alle mulighederne for et programmeringssprog til generelle formål. Dette inkluderer aritmetiske funktioner. Der er et antal syntaksindstillinger, du kan bruge til at fremkalde aritmetisk evaluering af et udtryk. Den mest læsbare er måske lade kommando. For eksempel:
lad m = (4 * 1024)
beregner 4 gange 1024 og tildeler resultatet til variablen "m".
Du kan udskrive resultatet ved at tilføje et ekko udmelding:
ekko $ m
Du kan også oprette en fil, der indeholder Bash-kommandoer, i hvilket tilfælde du skal tilføje en linje øverst i filen, der specificerer det program, der skal udføre koden. For eksempel:
#! / Bin / bash
antager, at Bash-eksekverbare er placeret i / Bin / bash. Du skal også indstille tilladelserne til din scriptfil, så den kan eksekveres. Forudsat at scriptfilnavnet er script1.sh, kan du indstille tilladelserne til at gøre filen eksekverbar med kommandoen:
chmod + x script1.sh
Derefter kan du udføre det med kommandoen:
./script1.sh
De tilgængelige aritmetiske operationer ligner dem i standard programmeringssprog som Java og C. Udover multiplikation, som illustreret ovenfor, bruger du tilføjelse:
lad m = (5 + 5)
eller subtraktion:
lad m = (10 - 2)
eller opdeling:
lad m = (10/2)
eller modulo (resten efter en heltalopdeling):
lad m = (11/2)
Når en operation anvendes til den samme variabel, som resultatet er tildelt, kan du bruge de aritmetiske standardopgaver med tildeling af korthold, også kaldet sammensatte tildelingsoperatører. For eksempel har vi f.eks.:
((m + = 15))
hvilket er ækvivalent med "m = m + 15". Til subtraktion har vi:
((m- = 3))
hvilket svarer til "m = m - 3". For opdeling har vi:
((m / = 5))
hvilket er ækvivalent med "m = m / 5". Og til modulo har vi:
((m% = 10))
hvilket er ækvivalent med "m = m% 10".
Derudover kan du bruge tilvækst og formindskelsen operatører:
((m ++))
er ækvivalent med "m = m + 1". Og
((m--))
svarer til "m = m - 1".
Flydende aritmetik i bash
Det lade operatør fungerer kun for heltalearitmetik. Til aritmetisk med flydende punkt kan du f.eks. Bruge GNU bc-regnemaskinen som illustreret i dette eksempel:
ekko 32,0 + 1,4 | bc
Operatøren "pipe" | " overfører det aritmetiske udtryk "32.0 + 1.4" til bc-regnemaskinen, der returnerer det reelle tal. Echo-kommandoen udskriver resultatet til standardoutputet.
Alternativ syntaks til aritmetik
Backticks (tilbage enkelt citater) kan bruges til at evaluere et aritmetisk udtryk som i dette eksempel:
ekko `expr $ m + 18 '
Dette tilføjer 18 til værdien af variablen "m" og udskriver derefter resultatet.
For at tildele beregningsværdien til en variabel kan du bruge det samme tegn uden mellemrum omkring den:
m = `expr $ m + 18 '
En anden måde at evaluere aritmetiske udtryk er at bruge dobbelt parentes. For eksempel:
((m * = 4))
Dette vil fordobles værdien af variablen "m".
Udover aritmetisk evaluering tilvejebringer Bash-shell andre programmeringskonstruktioner, såsom for-loops, while-loops, conditionals og funktioner og subroutines.