Como hacer cálculos con la terminal en GNU/Linux
Vamos a ver varias opciones, que tenemos disponibles, para realizar cálculos matemáticos en la terminal de nuestro sistema GNU/Linux.
En programación y en situaciones de uso normal de la terminal, muchas veces necesitamos realizar algunos cálculos. Esta es una tarea sencilla en la terminal de nuestro sistema GNU/Linux. Para ello disponemos de varios comandos que nos permitirán realizar todo tipo de cálculos, incluso científicos, e incluirlos en scripts.
Sumario
- Operaciones desde la terminal
- Comando expr
- Comando bc
- Comando calc
- Comando gcalccmd
- Comando qalc
Operaciones desde la terminal
La forma más sencilla, sin necesidad de instalar nada, es usar el comando «echo» añadir el símbolo «$» e incluir la operación a realizar entre corchetes. Lo vemos con unos ejemplos,
echo $[ 3 + 7 ]
O realizar cálculos más complejos. Primero se ejecutará lo que se encuentra entre paréntesis y después el resto. Observa que el resultado es diferente
echo $[ 63 * (15-6) ] echo $[ 63 * 15-6 ]
Otro ejemplo
echo $[ 30 / (10-8) ]

También podemos valernos de las variables para realizar cálculos. Primero asignamos el valor que queramos a las variables y después operamos con ellas de la misma forma que hemos visto arriba.
x=30 y=15 echo $[ x / y ] echo $[ x * y ]

Comando expr
El comando «expr» forma parte del paquete de software del proyecto GNU «coreutils» y es una utilidad básica para el interprete de comandos. Por tanto tampoco tendrás que instalar nada. Como su propio nombre indica su utilidad es resolver expresiones matemáticas. Vemos unos ejemplos
expr 15 + 7
Para realizar una multiplicación se utiliza el asterísco «*», pero como para bash es un caracter especial lo tenemos que «escapar» añadiendo un backslash «\» o barra invertida. Es necesario que tengamos un espacio entre cada caracter, es decir, un espacio entre cada número y cada símbolo de suma, resta, multiplicación o división. Por ejemplo
expr 15 + 7 * 8 - 6
Nos da error. Pero si ejecutamos
expr 15 + 7 \* 8 - 6
Resuelve la operación sin problemas.

Lo podemos utilizar para dar un valor a una variable. En este caso deberemos utilizar el operador grave «`» para que se ejecute lo que añadamos dentro. Puedes ver más sobre el uso de comillas en shell en este enlace.
var=`expr 15 + 7 \* 8 - 6 `

Se utiliza con mucha frecuencia en scripts bash. Aquí tienes un ejemplo de un programa de una calculadora. Copia y pega el siguiente código para probarlo.
nano calculadora.sh
#/bin/sh #calculadora clear sum=0 i="y" echo "Vamos a realizar una operacion aritmetica" echo echo sleep 2 echo "Introduce la primera cifra" read n1 echo "Introduce la segunda cifra" read n2 while [ $i = "y" ] do echo "1.Sumar" echo "2.Restar" echo "3.Multiplicar" echo "4.Dividir" echo "Introduce el numero de operacion deseada (1 al 4)" read ch case $ch in 1)sum=`expr $n1 + $n2` echo " Resultado de la suma ="$sum;; 2)sum=`expr $n1 - $n2` echo " Resultado de la resta ="$sum;; 3)sum=`expr $n1 \* $n2` echo " Resultado de la multiplicacion ="$sum;; 4)sum=`expr $n1 / $n2` echo " Resultado de la division ="$sum;; *)echo "Tu seleccion es incorrecta";; esac echo "Quieres continuar (y/n) ?" read i if [ $i != "y" ] then echo "Hemos terminado" $USER exit fi done

Acuérdate de darle permisos de ejecución
chmod +x calculadora.sh ./calculadora.sh

Comando bc
El nombre del comando viene de «basic calculator». Es una calculadora para la linea de comandos muy versátil. Podemos utilizarla para realizar operaciones matemáticas básicas y también la podemos incluir en scripts.
La sintaxis es
bc [ -hlwsqv ] [opciones-largas] [nombre_fichero]
Estas opciones son
- -h , {- -help } : imprime el uso y sale
- -i , {- -interactive } : fuerza el modo interactivo
- -l , {- -mathlib } : define la biblioteca matemática estándar
- -w , {- -warn } : Dar advertencias para extensiones a POSIX bc
- -s , {- -standard } : Procesar exactamente el lenguaje POSIX bc
- -q , {- -quiet } : No imprimir el GNU normal bc welcome
- -v , {- -version } : Imprimir el número de versión y los derechos de autor y salir
Cuando ejecutamos el comando, nos abre una interfaz para realizar las operaciones de sumar, restar, dividir ,multiplicar, raíces cuadradas y calcular potencias. Trabaja con números enteros por lo que si necesitamos decimales deberemos asignar el valor de los decimales que queramos con la variable «scale».
bc 2^8
Si queremos hacer una división sin decimales
10/3
Y para obtener el resto
10%3

Para dividir y obtener 2 decimales, damos el valor 2 a la variable «scale»
scale=2 10/3
La raíz cuadrada se calcula con la función «sqrt»
sqrt(8)
Para salir de la interfaz ejecutamos
quit

Nos permite cargar una librería para operaciones complejas como seno, coseno, tangente, logaritmos neperianos, matrices y más, ejecutando el comando con la opción «-l». Si necesitas más información la tienes en el manual integrado de la herramienta.
man bc

Comando calc
Se trata de otra calculadora simple para realizar todo tipo de cálculos en la linea de comandos. Si no la tienes instalada en tu sistema lo puedes hacer ejecutando
sudo apt install apcalc

La podemos utilizar de modo interactivo y no interactivo. De modo interactivo, ejecutamos en la terminal «calc» y ya podemos realizar las operaciones. Para salir «quit»
calc 10+2 10-2 2-10 10/2 2*10

Para utilizarla de modo no interactívo, tenemos que escribir el comando seguido de la operación a realizar.
calc 10*2 calc 10*(7-2) calc 10*7-2

Comando gcalccmd
Aquí tenemos otra calculadora que es la oficial del entorno de escritorio «Gnome». Es la versión para la linea de comandos de la utilidad «Gnome Calculadora».

Lo más normal es que la tengas instalada con el escritorio, pero si no fuese así, la instalas con
sudo apt install gnome-calculator
Para utilizarla ejecuta
gcalccmd 10+2 10+(7-3) sqrt(8) Para salir "quit"

Comando qalc
La última opción que vemos es «qalc». Una calculadora fácil de usar pero muy potente, como el comando «bc», que nos permite realizar cálculos matemáticos más complejos. Incluye una librería de funciones personalizables, conversiones de unidades, integrales y ecuaciones, aritmética de intervalos, etc…
Para usarla la instalamos con
sudo apt install qalc

Y la ejecutamos con
qalc 10+2 10+(7-3) sqrt(8) fibonacci(133) to hex

Para salir «quit»
Para saber más de esta herramienta consulta la documentación en su página oficial en GitHub. Te puedes descargar el código fuente desde su página y compilarlo, te explican como hacerlo.
Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en pie de la página o desde aquí mismo.