Aritmètica a Bash

Com afegir càlculs a una seqüència de comptes

Tot i que Bash és un llenguatge de scripting, té pràcticament totes les capacitats d'un llenguatge de programació de propòsit general. Això inclou funcions aritmètiques. Hi ha diverses opcions de sintaxi que podeu utilitzar per evocar l'avaluació aritmètica d'una expressió. Potser el més llegible sigui l'ordre let . Per exemple

deixa "m = 4 * 1024"

compondrà 4 vegades 1024 i assignarà el resultat a la variable "m".

Podeu imprimir el resultat afegint una declaració de ressò :

deixa "m = 4 * 1024" echo $ m

Podeu provar-ho des de la línia d'ordres introduint el següent codi:

deixa "m = 4 * 1024"; eco $ m

També podeu crear un fitxer que contingui les ordres de Bash, en aquest cas heu d'afegir una línia a la part superior del fitxer que especifiqui el programa que se suposa que ha d'executar el codi. Per exemple:

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

suposant que l'executable de Bash es troba a / bin / bash . També heu d'establir els permisos del vostre fitxer de seqüència perquè sigui executable. Suposant que el nom del fitxer de seqüència és script1.sh , podeu establir els permisos per executar el fitxer amb l'ordre:

chmod 777 script1.sh

Després d'això, podeu executar-lo amb l'ordre:

./script1.sh

Les operacions aritmètiques disponibles són similars a les de llenguatges de programació estàndard com Java i C. A més de la multiplicació, com es mostra a dalt, s'utilitza l'addició:

deixa "m = a + 7"

o resta:

deixa "m = a - 7"

o divisió:

deixa "m = a / 2"

o mòdul (la resta després d'una divisió sencera):

deixa "m = un% 100"

Quan una operació s'aplica a la mateixa variable a la que s'assigna el resultat, podeu utilitzar els operadors d'assignació aritmètica estàndard de taquigrafia, també anomenats operadors d'assignació composta. Per exemple, per afegir, tenim:

deixa "m + = 15"

que equival a "m = m + 15". Per a la resta tenim:

deixa "m - = 3"

que equival a "m = m - 3". Per divisió tenim:

deixa "m / = 5"

que equival a "m = m / 5". I per al mòdul, tenim:

deixa "m% = 10"

que equival a "m = m% 10".

A més, podeu utilitzar els operadors d' increment i disminució :

deixa "m + +"

equival a "m = m + 1". I

deixa "m--"

equival a "m = m - 1".

I, a continuació, hi ha l'operador "interrogant-colon" ternari, que retorna un dels dos valors depenent de si la condició especificada és vertader o falsa. Per exemple

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

El costat dret d'aquesta declaració d'assignació s'avalua a "0" si la variable "m" és menor que 9. En cas contrari, s'avalua a 1. Això significa que la variable "k" s'assigna "0" si "m" és menor de 9 i "1" d'una altra manera.

La forma general de l'operador d'interrogació marca-colon és:

condició? value-if-true: value-if-false

Aritmètica de punt flotant a Bash

L'operador let només funciona per aritmètica de sencer. Per aritmètica de punt flotant podeu utilitzar, per exemple, la calculadora GNU bc tal com es mostra en aquest exemple:

echo "32.0 + 1.4" | bc

L'operador "pipe" "|" passa l'expressió aritmètica "32.0 + 1.4" a la calculadora bc, que retorna el nombre real. La comanda echo imprimeix el resultat a la sortida estàndard.

Sintaxi alternativa per aritmètica

Els backticks (cometes posteriors) es poden utilitzar per avaluar una expressió aritmètica com en aquest exemple:

echo `expr $ m + 18`

Això afegirà 18 al valor de la variable "m" i, a continuació, imprimirà el resultat.

Per assignar el valor de computar a una variable, podeu utilitzar el signe d'igual sense espais al seu voltant:

m = `expr $ m + 18`

Una altra forma d'avaluar les expressions aritmètiques és utilitzar un doble parèntesi. Per exemple:

((m * = 4))

Això quadruplicarà el valor de la variable "m".

A més de l'avaluació aritmètica, el shell Bash proporciona altres construccions de programació, com for-loops , while-loops , condicionals i funcions i subrutines .