Cuando comienzas a crear tus propios scripts, a veces te ves en la necesidad de hacer cálculos. Hoy os voy a explicar un par de comandos que podemos utilizar para hacer nuestros cálculos, expr (evalúa los argumentos como una expresión) y calc (Calculadora de precisión arbitraria).
Expr viene preinstalado en Ubuntu por defecto, cosa que no sucede con calc. Y os preguntareis: ¿Porque utilizar dos comandos? expr no utiliza decimales y para determinados casos nos puede ir bien, pero si queremos utilizar decimales, tendremos que echar mano de calc.
Otro método de hacer cálculos sería con bc, pero lo dejo para otro Post porque expr y calc diría que es la versión de comandos para hacer cálculos seres humanos, escribiremos en la terminal igual que haríamos en una calculadora.
Con expr vamos a ejecutar operaciones aritméticas o de comparación. Vamos a ver como funciona:
expr <número> <operador matemático> <número>
Hay que dejar un espacio en blanco entre los números y símbolo de +.
expr 8 + 4
Suma con números negativos:
expr -30 + 47
expr 8 - 4
Lleva la contrabarra \ para escapar del asterísco. Es la única excepción respecto como lo haríamos con la calculadora:
expr 8 \* 4
expr 8 / 4
expr 10 % 100
Otra cosa que nos permite expr es ejecutar comparaciones. Si la comparación es verdadera, nos devolverá 1, si es falsa 0. Aquí también hay símbolos que llevan la contrabarra \ para escapar.
expr 10 = 7 # Igual
expr 10 != 7 # No es igual
expr 10 \> 7 # Mayor que
expr 10 \< 7 # Menor que
expr 10 \<= 7 # Menor o igual
expr 10 \>= 7 # Mayor o igual
También podemos contar el número de letras que hay en una frase:
expr length "hola mundo"
O en un archivo de texto plano:
expr length "$(cat mis_notas.txt)"
Hay muchas mas opciones. Lee en manual para conocerlas:
man expr
Calc no viene instalado por defecto en Ubuntu. Lo instalaremos así:
sudo apt install apcalc
Suma con decimales:
calc 12.5 + 21.4
33.9
Aquí ya podemos sumar números negativos. Al poner el signo negativo, tiene que ir entre paréntesis.
calc '(-30 + 47)'
17
calc '(-30 - 47)'
-77
En el caso de la multiplicación, calc no necesita \ de escape:
calc 30*2
60
calc '(-2 * 10)'
-20
calc 30\*2
60
calc 200/10
20
calc 10%100
10
Hay muchas mas en manual:
man calc
Esto es tan solo unos ejemplos de estos comandos, pero podemos utilizarlo para contar letras entre líneas de archivos,… y muchas más cosas Ahora ya solo queda llenar tus variables de números y comenzar ha hacer montones de cálculos.
Publicado por Angel el Monday 01 April del 2019
También te puede interesar:
Powered by org-bash-blog
Written in OrgMode with Emacs and converted to HTML with Pandoc
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.