Administrador de Linux: operaciones matemáticas básicas
Bash realiza operaciones matemáticas de números enteros usando los operadores comunes para la suma, resta, multiplicación y división.
+ | Adición |
- | Sustracción |
* | Multiplicación |
/ | división |
% | Módulo |
<< | Incremento |
- | Decremento |
Al realizar operaciones matemáticas, es necesario utilizar el formato $ ((fórmula matemática))
Note - Al usar $() BASH, ejecutará un comando. echo $(ls)imprimirá la salida de ls al terminal. Añadiendo un adicionalnest () le permitirá a BASH saber las operaciones matemáticas que se realizarán.
En el siguiente código, usamos el operador de preincremento para incrementar a medida que se imprime en el terminal.
#!/bin/bash
for i in `seq 0 10`;
do
echo $((++i))
done
Lo siguiente será la salida.
1
2
3
4
5
6
7
8
9
10
11
Operaciones matemáticas más básicas:
#!/bin/bash
echo $((2+1))
echo $((2-1))
echo $((2*1))
echo $((2/1))
echo $((2%1))
Lo siguiente será la salida.
3
1
2
2
0
Realizar operaciones matemáticas con números enteros es bastante simple en BASH. El desarrollador solo necesita recordar que las operaciones con números enteros siempre se realizan en $ (()), diciéndole a BASH que son matemáticas.
Para números de punto flotante, queremos usar el comando bc -
#!/bin/bash
echo 1.1+2.3 | bc
Lo siguiente será la salida.
3.4
bc puede volverse bastante complejo pero al mismo tiempo es una calculadora de línea de comandos muy poderosa.
Aquí está la página de manual de bc:
bc es un lenguaje que admite números de precisión arbitrarios con ejecución interactiva de declaraciones. Hay algunas similitudes en la sintaxis del lenguaje de programación C. Una biblioteca matemática estándar está disponible mediante la opción de línea de comando. Si se solicita, la biblioteca matemática se define antes de procesar cualquier archivo. bc comienza procesando el código de todos los archivos enumerados en la línea de comando en el orden enumerado. Una vez procesados todos los archivos, bc lee la entrada estándar. El código completo se ejecuta a medida que se lee. (Si un archivo contiene un comando para detener el procesador, bc nunca leerá de la entrada estándar).
Esta versión de bc contiene varias extensiones más allá de las implementaciones tradicionales de bc y el borrador del estándar POSIX. Las opciones de la línea de comando pueden hacer que estas extensiones impriman una advertencia o sean rechazadas. Este documento describe el idioma aceptado por este procesador. Las extensiones se identificarán como tales.
Solo recuerde, usar bc es mejor con operaciones de punto flotante y el shell puede manejar matemáticas enteras. Deberá pasar sus operandos a bc . Finalmente, el parámetro de escala especifica la precisión de la solución.
#!/bin/bash
echo 'scale = 3; 1.19*2.3' | bc -q
Lo siguiente será la salida.
2.737