Programación BASH

bc para realizar operaciones aritméticas avanzadas en BASH

bc para realizar operaciones aritméticas avanzadas en BASH
Calculadora básica, también conocida como 'bc', es una utilidad de línea de comandos de Linux que se utiliza para realizar aritmética avanzada y álgebra en scripts bash. Proporciona muchas funciones matemáticas diferentes como seno, coseno, tangente, logaritmo natural en bash. Bash no puede realizar operaciones aritméticas avanzadas, como comparar flotantes; ahí es donde bc es útil. El comando 'bc' fue precedido por 'dc' (Calculadora de escritorio), una utilidad de UNIX. En este tutorial, usaremos el comando 'bc' para realizar operaciones aritméticas avanzadas.

Realización de operaciones aritméticas básicas

Las operaciones aritméticas simples como la suma, resta, división y multiplicación se pueden realizar usando el comando 'bc'. La sintaxis para aplicar operadores binarios simples en bash usando el comando 'bc' es la siguiente.

[correo electrónico protegido]: ~ $ echo " ”| antes de Cristo

En esta sección, usaremos el comando 'bc' para realizar operaciones aritméticas simples.

[correo electrónico protegido]: ~ $ num1 = 2.35322 5
[correo electrónico protegido]: ~ $ num2 = 1.223353
[correo electrónico protegido]: ~ $ echo “$ num1 + $ num2” | antes de Cristo
3.576578
[correo electrónico protegido]: ~ $ echo “$ num1- $ num2” | antes de Cristo
1.129872
[correo electrónico protegido]: ~ $ echo “$ num1 * $ num2” | antes de Cristo
2.878824
[correo electrónico protegido]: ~ $ echo “$ num1 / $ num2” | antes de Cristo
1

En el ejemplo anterior, mientras realizamos la división, obtuvimos el resultado sin puntos decimales. Para obtener el resultado hasta 'n' puntos decimales, tenemos que establecer el valor de la escala en 'n' como se muestra en el siguiente ejemplo.

[correo electrónico protegido]: ~ $ echo “scale = 10; $ num1 / $ num2 ”| antes de Cristo
1.9235862420

Alternativamente, podemos usar la bandera '-l' y el comando 'bc' para obtener salida decimal.

[correo electrónico protegido]: ~ $ echo “$ num1 / $ num2” | bc -l
1.92358624207403750184

El comando 'bc' también se puede usar para realizar la división de módulo y calcular la potencia de un número en scripts bash.

[correo electrónico protegido]: ~ $ echo “10% 4” | antes de Cristo
2
[correo electrónico protegido]: ~ $ echo “10 ^ 2” | antes de Cristo
100

Realización de operaciones aritméticas avanzadas

Hasta ahora, hemos usado el comando 'bc' para realizar algunas operaciones aritméticas básicas como suma, resta, multiplicación, etc., ahora; en esta sección, usaremos el comando 'bc' para realizar algunas operaciones aritméticas avanzadas. Discutiremos cómo podemos usar operadores de comparación, operadores lógicos o booleanos, funciones matemáticas avanzadas y declaraciones condicionales en bash usando el comando 'bc'.

Operadores de comparación

Los operadores de comparación toman dos números, los comparan y luego regresan 1 o 0 dependiendo de la comparación. Si la comparación es verdadera, entonces el resultado es VERDADERO (1); de lo contrario, es FALSO (0). A continuación se muestran algunos ejemplos de operadores de comparación.

  • num1> num2: Esta comparación volverá 1 Si el num1 es mayor que el num2.
  • num1 < num2: El resultado sera 1 Si el num1 es menor que el num2.
  • num1 <= num2: El resultado sera 1 Si el num1 es menor o igual que el num2.
  • num1> = num2: El resultado sera 1 Si el num1 es mayor o igual que el num2.
  • num1 == num2: El resultado sera 1 Si el num1 es igual a la num2.
  • num1 != num2: El resultado sera 1 si ambos números no son iguales.

A continuación se muestran algunos ejemplos de operadores de comparación utilizados junto con el comando 'bc'.

[correo electrónico protegido]: ~ $ echo “5 == 5” | antes de Cristo
1
[correo electrónico protegido]: ~ $ echo “4!= 4 ”| antes de Cristo
0
[correo electrónico protegido]: ~ $ echo “2> 5” | antes de Cristo
0
[correo electrónico protegido]: ~ $ echo “4<=4” | bc
1

Operadores booleanos

Los operadores booleanos o lógicos se utilizan en declaraciones condicionales para realizar algunas decisiones lógicas. A continuación se muestran los tres operadores lógicos básicos.

  • stat1 && stat2: Esto volverá 1 si ambas declaraciones son distinto de cero.
  • stat1 || stat2: Esto volverá 1 si alguna de las declaraciones es distinto de cero.
  • ! estadística: Esto volverá 1 si la declaración es distinto de cero y viceversa.

Los siguientes ejemplos ilustran cómo se utilizan los operadores lógicos con el comando 'bc'.

[correo electrónico protegido]: ~ $ echo “-5 && 0” | antes de Cristo
0
[correo electrónico protegido]: ~ $ echo “-1 || 0 ”| antes de Cristo
1
[correo electrónico protegido]: ~ $ echo "! 0 ”| antes de Cristo
1

Declaraciones condicionales

Las declaraciones condicionales se utilizan para ejecutar comandos específicos según la condición aplicada. La condición aplicada en la declaración condicional involucra operadores lógicos y de comparación. A continuación se muestra el ejemplo de declaraciones condicionales con el comando 'bc'.

[correo electrónico protegido]: ~ $ a = 15
[correo electrónico protegido]: ~ $ b = 20
[protegido por correo electrónico]: ~ $ echo 'if (a> b) imprime “a es mayor” si no imprime “b es mayor”' | bc -l
b es mayor

En el ejemplo anterior, la declaración verifica si a es mayor que bo no. Si a es mayor que b, imprimirá "a es mayor"; de lo contrario, imprimirá "b es mayor.”Podemos aplicar cualquier condición usando operadores booleanos y de comparación en el ejemplo anterior.

Funciones Matemáticas

El comando 'bc' también proporciona algunas funciones matemáticas integradas que podemos usar sin definirlas. A continuación se muestran algunas funciones esenciales que se utilizan con el comando 'bc' en bash.

  • s (x): devuelve el seno de x donde x está en radianes
  • c (x): devuelve el coseno de x donde x está en radianes
  • hacha): devuelve un arcotangente de x y el resultado está en radianes
  • sqrt (x): devuelve la raíz cuadrada de x. Provoca un error de tiempo de ejecución cuando x es negativo
  • l (x): devuelve logaritmo natural de la x.

Estas funciones se pueden utilizar con el comando 'bc', como se muestra en los siguientes ejemplos.

[correo electrónico protegido]: ~ $ pi = 3.1415
[correo electrónico protegido]: ~ $ echo “s ($ pi / 2)” | bc -l
1
[correo electrónico protegido]: ~ $ echo “c ($ pi / 2)” | bc -l
0
[correo electrónico protegido]: ~ $ echo “a (1)” | bc -l
0.7854

La raíz cuadrada de un número se puede calcular en bash usando el comando 'bc', como se muestra en la siguiente figura.

[correo electrónico protegido]: ~ $ echo “sqrt (4)” | bc -l
2

Al intentar calcular la raíz cuadrada de un número negativo, el shell arrojará un error de tiempo de ejecución.

[correo electrónico protegido]: ~ $ echo “sqrt (-2)” | bc -l
Error de tiempo de ejecución (func = (principal), adr = 4): raíz cuadrada de un número negativo

El logaritmo natural de un número se puede calcular en bash usando el comando 'bc' de la siguiente manera.

[correo electrónico protegido]: ~ $ echo “l (2)” | bc -l
.69314718055994530941

Conclusión

Al escribir scripts de automatización en bash, a veces necesitamos funciones matemáticas avanzadas y operadores lógicos para ejecutar comandos. El comando 'bc' proporciona muchas funciones y operadores matemáticos avanzados para realizar cálculos aritméticos de alto nivel. Este tutorial trata sobre el uso del comando 'bc' para realizar operaciones aritméticas avanzadas en bash.

Cómo mostrar el contador de FPS en juegos de Linux
Los juegos de Linux obtuvieron un gran impulso cuando Valve anunció el soporte de Linux para el cliente Steam y sus juegos en 2012. Desde entonces, mu...
Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...
Cómo instalar y jugar a Doom en Linux
Introducción a Doom La serie Doom se originó en los años 90 después del lanzamiento del Doom original. Fue un éxito instantáneo y, desde ese momento e...