5 maneres útils de fer aritmètica al terminal Linux


En aquest article, us mostrarem diverses maneres útils de fer aritmètica al terminal Linux. Al final d'aquest article, aprendràs diferents maneres pràctiques bàsiques de fer càlculs matemàtics a la línia d'ordres.

Comencem!

1. Ús de Bash Shell

La primera i més senzilla manera de fer matemàtiques bàsiques a la CLI de Linux és utilitzar un doble parèntesi. Aquests són alguns exemples on utilitzem valors emmagatzemats en variables:

$ ADD=$(( 1 + 2 ))
$ echo $ADD
$ MUL=$(( $ADD * 5 ))
$ echo $MUL
$ SUB=$(( $MUL - 5 ))
$ echo $SUB
$ DIV=$(( $SUB / 2 ))
$ echo $DIV
$ MOD=$(( $DIV % 2 ))
$ echo $MOD

2. Utilitzant l'ordre expr

L'ordre expr avalua les expressions i imprimeix el valor de l'expressió proporcionada a la sortida estàndard. Veurem diferents maneres d'utilitzar expr per fer matemàtiques simples, fer comparacions, incrementar el valor d'una variable i trobar la longitud d'una cadena.

A continuació es mostren alguns exemples de com fer càlculs senzills amb l'ordre expr. Tingueu en compte que cal escapar o citar molts operadors per als shells, per exemple l'operador * (en veurem més en comparació d'expressions).

$ expr 3 + 5
$ expr 15 % 3
$ expr 5 \* 3
$ expr 5 – 3
$ expr 20 / 4

A continuació, explicarem com fer comparacions. Quan una expressió es valora com a falsa, expr imprimirà un valor de 0, en cas contrari, imprimeix 1.

Vegem alguns exemples:

$ expr 5 = 3
$ expr 5 = 5
$ expr 8 != 5
$ expr 8 \> 5
$ expr 8 \< 5
$ expr 8 \<= 5

També podeu utilitzar l'ordre expr per augmentar el valor d'una variable. Mireu l'exemple següent (de la mateixa manera, també podeu disminuir el valor d'una variable).

$ NUM=$(( 1 + 2))
$ echo $NUM
$ NUM=$(expr $NUM + 2)
$ echo $NUM

Vegem també com trobar la longitud d'una cadena utilitzant:

$ expr length "This is linux-console.net"

Per obtenir més informació, especialment sobre el significat dels operadors anteriors, consulteu la pàgina man expr:

$ man expr

3. Utilitzant l'ordre bc

bc (Calculadora bàsica) és una utilitat de línia d'ordres que ofereix totes les funcions que espereu d'una calculadora científica o financera senzilla. És especialment útil per fer matemàtiques de coma flotant.

Si l'ordre bc no està instal·lat, podeu instal·lar-lo mitjançant:

$ sudo apt install bc   #Debian/Ubuntu
$ sudo yum install bc   #RHEL/CentOS
$ sudo dnf install bc   #Fedora 22+

Un cop instal·lat, podeu executar-lo en mode interactiu o no interactiu passant-li arguments; veurem tots dos casos. Per executar-lo de manera interactiva, escriviu l'ordre bc a l'indicador d'ordres i comenceu a fer algunes matemàtiques, tal com es mostra.

$ bc 

Els exemples següents mostren com utilitzar bc de manera no interactiva a la línia d'ordres.

$ echo '3+5' | bc
$ echo '15 % 2' | bc
$ echo '15 / 2' | bc
$ echo '(6 * 2) - 5' | bc

El senyalador -l s'utilitza a l'escala predeterminada (dígits després del punt decimal) fins a 20, per exemple:

$ echo '12/5 | bc'
$ echo '12/5 | bc -l'

4. Utilitzant l'ordre Awk

Awk és un dels programes de processament de text més destacats de GNU/Linux. Admet els operadors aritmètics de suma, resta, multiplicació, divisió i mòdul. També és útil per fer matemàtiques de coma flotant.

Podeu utilitzar-lo per fer matemàtiques bàsiques com es mostra.

$ awk 'BEGIN { a = 6; b = 2; print "(a + b) = ", (a + b) }'
$ awk 'BEGIN { a = 6; b = 2; print "(a - b) = ", (a - b) }'
$ awk 'BEGIN { a = 6; b = 2; print "(a *  b) = ", (a * b) }'
$ awk 'BEGIN { a = 6; b = 2; print "(a / b) = ", (a / b) }'
$ awk 'BEGIN { a = 6; b = 2; print "(a % b) = ", (a % b) }'

Si sou nou a Awk, tenim una sèrie completa de guies per començar a aprendre-lo: Apreneu Awk Text Processing Tool.

5. Ús de factor Command

L'ordre factor s'utilitza per descompondre un nombre enter en factors primers. Per exemple:

$ factor 10
$ factor 127
$ factor 222
$ factor 110  

Això és tot! En aquest article, hem explicat diverses maneres útils de fer aritmètica al terminal Linux. No dubteu a fer qualsevol pregunta o compartir qualsevol reflexió sobre aquest article mitjançant el formulari de comentaris a continuació.