Arithmétique zu Bash

Wéi Dir Rechnungen u Bicher Skript hinzufügen

Obwuel Bash eng Schrëftstellungssituatioun ass, ass et zimmlech all d'Fähigkeiten vun enger Programmatiounsprojekt allgemeng. Dëst beinhalt och Arithmetik. Et sinn eng Rei vu Syntax- Méiglechkeeten, déi Dir benotzt kënnt fir d'arithmetesch Evaluatioun vun engem Ausdrock evitéieren. Vläicht ass déi liestibel wéi de Liese komm. Zum Beispill

Loosst "m = 4 * 1024"

wäerte 4 Mol 1024 errechnen an d'Resultat op déi Variabel "m" ginn.

Dir kënnt d'Resultat ausdrécken andeems Dir eng Echo- Ausso hinzeweisen:

Loosst "m = 4 * 1024" Echo $ m

Dir kënnt dësen Test aus der Kommandozeilegung testen andeems Dir de folgende Code starten:

Loosst "m = 4 * 1024"; Echo $ m

Dir kënnt och e Fichier mat der Kommandéiert Bash erstellen, a wéi engem Fall Dir eng Zeil am Top vun der Datei fügen, déi de Programm spezifizéiere wat de Code gemaach gëtt. Zum Beispill:

#! / bin / bash lues "m = 4 * 1024" echo $ m

datt déi bash executable ass an / bin / bash . Dir musst och d'Permissiounen vun Ärem Skript Datei setzen fir datt se ausführbar ass. Assuming den Skript Dateinumm script1.sh , kënnt Dir d'Permissiounen opsetzen fir de Fichier mat dem Kommando ze maachen:

chmod 777 script1.sh

Duerno kënnt Dir se mat dem Kommando ausginn:

./script1.sh

Déi arithmetesch Operatiounen sinn ähnlech mat denen an normale Programméierungssegkeeten wéi Java an C. Nieft Multiplikatioun, wéi virdrun illustréiert, benotze Dir Iech:

"m = a + 7"

oder Ënnerzug:

Loosst "m = a - 7"

oder Divisioun:

"m = a / 2"

oder Modulo (de Rescht no enger ganzer Divisioun):

Loosst "m = a% 100"

Wann eng Operatioun op déi selwecht Variable applizéiert gëtt, op déi d'Resultat ass zougestëmmt ginn, kënnt Dir déi Standard arithmetesch Kuerzbetribsbetreiber benotzen, déi och als Compound assignment Operatoren bezeechent ginn. Zum Beispill, fir Zusätzlech hu mir:

Loosst "m + = 15"

déi entsprécht "m = m + 15". Fir Ënnerratioun hu mir:

"m - = 3"

déi entsprécht "m = m - 3". Fir Divisioun hunn mir:

"m / = 5"

déi entsprécht "m = m / 5". A fir Modul hu mir:

"m% = 10"

déi entsprécht "m = m% 10".

Zousätzlech kënnt Dir d' Inkrement- an Dekrementbetreiber benotzen :

"m ++"

entsprécht "m = m + 1". An

"m--"

entsprécht "m = m - 1".

A da gëtt et den ternary "Quest Mark-Doppelpunkt" Operator, deen ee vun zwee Wäerter ofhänkt, jee ob d'spezifizéierter Zoustand richteg oder falsch ass. Zum Beispill

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

De richtegen Deel vun dëser Belaaschtungs-Erklärung beurteelt op "0", wann d'Variabel "m" manner wéi 9 ass. Sinn d'Evaluatioun op 1. Dëst heescht, datt déi Variabel "k" ass "0" ass gëtt wann "m" manner wéi 9 an "1" soss.

D'allgemeng Form vun der Frage Markekolon Betreiber ass:

Konditioun? Wäert-wann ech: Wäert-si-falsch

Floating Point Arithmetik am Bash

De verstuerwene Betreiber funktionéiert nëmme fir eng ganz ganz arithmetesch. Fir Gittritts-Arithmetik kënnt Dir zum Beispill den GNU-bk-Rechner benotze wéi an dësem Beispill illustriert:

Echo "32.0 + 1,4" | bc

De "Pipe" -Aktoraart "|" den arithmetesche Ausdréck "32,0 + 1,4" an den bc-calculator, deen d'richteg Zuel zréckgëtt. De Echobefehl gedréckt de Resultat op déi standard Erausfuerderung.

Alternativ Syntax fir Arithmetik

Backticks (rop eenzel Zitaten) kënnen benotzt ginn fir e arithmetesche Ausdrock ze evaluéieren wéi an dësem Beispill:

Echo `expr $ m + 18`

Dëst addéiert 18 de Wäert vun der Variabel "m" a addéiert d'Resultat aus.

Fir de Rechenwert op eng Variabel ze verzeechnen kënnt Dir de gläicht Zeechen ouni Raumplazen ëmginn:

m = `expr $ m + 18`

Eng aner Manéier fir d'arithmetesch Ausdréck ze evaluéieren ass d'Dopingdoublehesis. Zum Beispill:

((m * = 4))

Dëst wäert de Quadrupel vum Wäert vun der Variabel "m" sinn.

Nieft der arithmetescher Evaluatioun bitt de Bash Shell aner Programméierungskonstrukturen, wéi For-Loops , während-Loops , Conditionen a Funktiounen a Subroutinen .