Lunes, Noviembre 28, 2022

Calculadora de línea de comandos

Tux-comando-terminal-consola-linux

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\n10 / 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

 Fuente: linuxito

¿Quién está en línea?

Hay 195 invitados y ningún miembro en línea

Contador de Visitas

14044639
Hoy Hoy 1691
Ayer Ayer 3049
Esta semana Esta semana 1691
Este mes Este mes 100000
Total de Visitas Total de Visitas 14044639

Día con más
visitantes

11-03-2022 : 4360

Gracias por su visita