Aritmetică în Bash

Cum se adaugă calculele la un script Bash

Deși Bash este un limbaj de scripting, are aproape toate capabilitățile unui limbaj de programare cu scop general. Aceasta include funcțiile aritmetice. Există o serie de opțiuni de sintaxă pe care le puteți utiliza pentru a evoca evaluarea aritmetică a unei expresii. Poate cel mai lizibil este comanda de let . De exemplu

lăsați "m = 4 * 1024"

va calcula de 4 ori 1024 și va atribui rezultatul variabilei "m".

Puteți tipări rezultatul adăugând o declarație de ecou :

lăsați "m = 4 * 1024" echo $ m

Puteți testa acest lucru din linia de comandă prin introducerea următorului cod:

lăsați "m = 4 * 1024"; echo $ m

Puteți crea, de asemenea, un fișier care conține comenzile Bash, caz în care ar trebui să adăugați o linie în partea de sus a fișierului care specifică programul care ar trebui să execute codul. De exemplu:

#! / bin / bash lăsați "m = 4 * 1024" echo $ m

presupunând că executabilul Bash este localizat în / bin / bash . De asemenea, trebuie să setați permisiunile fișierului dvs. script astfel încât să fie executabil. Presupunând că numele fișierului script este script1.sh , puteți seta permisiunile pentru a face fișierul executabil cu comanda:

chmod 777 script1.sh

După aceasta puteți executa cu comanda:

./script1.sh

Operațiile aritmetice disponibile sunt similare celor din limbile de programare standard precum Java și C. Pe lângă multiplicare, după cum este ilustrat mai sus, utilizați adăugarea:

lăsați "m = a + 7"

sau scădere:

lăsați "m = a - 7"

sau diviziune:

lăsați "m = a / 2"

sau modulo (restul după o diviziune întreg):

lăsați "m = a% 100"

Atunci când se aplică o operație la aceeași variabilă căreia îi este atribuit rezultatul, puteți utiliza operatorii standard de atribuire a stenogramelor aritmetice, denumiți și operatori de atribuire a compușilor. De exemplu, pentru adăugare, avem:

lăsați "m + = 15"

care este echivalent cu "m = m + 15". Pentru scădere avem:

lăsați "m - = 3"

care este echivalent cu "m = m - 3". Pentru divizare avem:

lăsați "m / = 5"

care este echivalent cu "m = m / 5". Și pentru modulo, avem:

lăsați "m% = 10"

care este echivalent cu "m = m% 10".

În plus, puteți utiliza operatorii de incrementare și decrementare :

lăsați "m ++"

este echivalent cu "m = m + 1". Și

lăsați "m--"

este echivalent cu "m = m - 1".

Apoi, există operatorul ternar "punct de întrebare-colon", care returnează una dintre cele două valori, în funcție de situația în care condiția specificată este adevărată sau falsă. De exemplu

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

Partea dreaptă a acestei instrucțiuni de atribuire este evaluată la "0" dacă variabila "m" este mai mică de 9. În caz contrar, aceasta este evaluată la 1. Aceasta înseamnă că variabila "k" este atribuită "0" dacă "m" decât 9 și "1" altfel.

Forma generală a operatorului de întrebări-colon este:

condiție ? value-if-true: valoare-if-false

Aritmetica punctului plutitor în Bash

Operatorul let să funcționeze numai pentru aritmetică întreg. Pentru aritmetica cu virgulă mobilă puteți utiliza, de exemplu, calculatorul GNU bc așa cum este ilustrat în acest exemplu:

echo "32.0 + 1.4" | bc

Operatorul "conductă" | "" trece prin expresia aritmetică "32.0 + 1.4" la calculatorul bc, care returnează numărul real. Comanda ecou imprimă rezultatul la ieșirea standard.

Sintaxă alternativă pentru aritmetică

Backticks-urile (ghilimele simple din spate) pot fi folosite pentru a evalua o expresie aritmetică ca în acest exemplu:

echo `expr $ m + 18`

Aceasta va adăuga 18 la valoarea variabilei "m" și apoi va imprima rezultatul.

Pentru a atribui valoarea de calcul unei variabile, puteți folosi semnul egal fără spații în jurul acestuia:

m = 'expr $ m + 18`

O altă modalitate de a evalua expresiile aritmetice este utilizarea unei paranteze duble. De exemplu:

((m * = 4))

Aceasta va cvadrura valoarea variabilei "m".

Pe lângă evaluarea aritmetică, shell-ul Bash furnizează și alte construcții de programare, cum ar fi for-buclele , buclele , condiționările , funcțiile și subrutinele .