Calculadora de línea de comandos

En este breve artículo voy a demostrar cómo realizar cálculos matemáticos simples utilizando bc en GNU/Linux. Este utilitario puede ser de gran utilidad para salir del paso y realizar cuentas rápidas desde línea de comandos (sin necesidad de abrir aplicaciones gráficas como KCalc u otras). Pero mejor aún cuando se necesita realizar algún cálculo aritmético desde un script Bash.







bc es un lenguaje que soporta cálculos interactivos desde línea de comandos o archivos, utilizando números de precisión arbitraria. Cuando se utiliza de manera interactiva, bc procesa las sentencias de a una línea por vez.

En los sistemas FreeBSD, bc está incluido como parte del sistema base, con lo cual no es necesario instalarlo. En los sistemas GNU/Linux basados en Debian se instala de manera simple ejecutando apt-get install bc . En CentOS y derivados mediante yum install bc .

Los símbolos que utiliza bc para los operadores más comunes son los siguientes:

+ suma

- resta

* multiplicación

/ división

% resto o módulo

^ potencia

Además bc permite utilizar paréntesis para anidar operaciones y punto ( . ) para la coma decimal.

bc también permite definir y asignar valores a variables; evaluar expresiones booleanas; definir sentencias de control como if , while , for y otras; crear funciones; y más (para mayor información revisar su página de manual).

A continuación, veamos algunos ejemplos simples.

Al lanzar bc , se muestra un breve disclaimer y se queda esperando por sentencias a evaluar:

root@linuxito:~# bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'.

En modo interactivo bc evalúa de a una línea por vez, con lo cual se debe ingresar una expresión aritmética y luego presionar enter:>/p>

5*3 15

La siguiente línea es el resultado de la expresión ingresada (en caso de haber alguno).

Se debe utilizar punto para expresar la coma decimal:

5.46 + 1.029*2 7.518

Además es posible utilizar cualquier número de espacios en blanco.

El uso de paréntesis es extremadamente intuitivo:

(5.46+1.029)*2 12.978

Es posible definir variables con asignaciones simples ( = ) como en cualquier lenguaje de programación:

pepe=4

Y luego utilizar las variables para cualquier otro cálculo:

pepe+6 10

Lo más interesante sin embargo (al menos para un SysAdmin), es la posibilidad de utilizar un pipe para enviar la salida de un comando a bc :

[root@centos6]# echo "10 / 3" | bc 3

Si se desea obtener resultados en el conjunto real, se debe invocar a bc con la opción -l :

[root@centos6]# echo "10 / 3" | bc 3.33333333333333333333

La cantidad de dígitos decimales por defecto es 20, si se desea modificar, es necesario recurrir a la variable especial scale , por ejemplo:

[root@centos6]# echo -e "scale=2

10 / 3" | bc -l 3.33

Es posible reemplazar los saltos de línea por punto y coma ( ; ):

[root@centos6]# echo "scale=2; 10 / 3" | bc -l 3.33

Referencias

man bc



Tal vez pueda interesarte

