BC para realizar operaciones aritméticas avanzadas en Bash

BC para realizar operaciones aritméticas avanzadas en Bash
La calculadora básica, también conocida como 'BC', es una utilidad de línea de comandos de Linux utilizada para realizar aritméticos y álgebra avanzados 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 carrozas; Ahí es donde BC es útil. El comando 'BC' fue precedido por 'DC' (calculadora de escritorio), una utilidad UNIX. En este tutorial, utilizaremos el comando 'BC' para realizar operaciones aritméticas avanzadas.

Realización de operaciones aritméticas básicas

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

ubuntu@ubuntu: ~ $ echo " "| antes de Cristo

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

ubuntu@ubuntu: ~ $ num1 = 2.35322 5
ubuntu@ubuntu: ~ $ num2 = 1.223353
ubuntu@ubuntu: ~ $ echo "$ num1+$ num2" | antes de Cristo
3.576578
ubuntu@ubuntu: ~ $ echo "$ num1- $ num2" | antes de Cristo
1.129872
ubuntu@ubuntu: ~ $ echo "$ num1*$ num2" | antes de Cristo
2.878824
ubuntu@ubuntu: ~ $ 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' decimal, tenemos que establecer el valor de escala en 'n' como se muestra en el siguiente ejemplo.

ubuntu@ubuntu: ~ $ echo “escala = 10; $ num1/$ num2 "| antes de Cristo
1.9235862420

Alternativamente, podemos usar el indicador '-l' y el comando 'BC' para obtener salida decimal.

ubuntu@ubuntu: ~ $ echo "$ num1/$ num2" | BC -L
1.92358624207403750184

El comando 'BC' también se puede utilizar para realizar la división del módulo y calcular el poder de un número en los scripts bash.

ubuntu@ubuntu: ~ $ echo "10%4" | antes de Cristo
2
ubuntu@ubuntu: ~ $ echo "10^2" | antes de Cristo
100

Realización de operaciones aritméticas avanzadas

Hasta ahora, hemos utilizado el comando 'BC' para realizar algunas operaciones aritméticas básicas como suma, resta, multiplicación, etc., ahora; En esta sección, utilizaremos 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 utilizando 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). Los siguientes son 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 será 1 Si el num1 es menor que el num2.
  • num1 <= num2: El resultado será 1 Si el num1 es menor o igual al num2.
  • num1> = num2: El resultado será 1 Si el num1 es mayor o igual que el num2.
  • num1 == num2: El resultado será 1 Si el num1 es igual a la num2.
  • num1 != num2: El resultado será 1 Si ambos números no son iguales.

Los siguientes son algunos ejemplos de operadores de comparación utilizados junto con el comando 'BC'.

ubuntu@ubuntu: ~ $ echo "5 == 5" | antes de Cristo
1
ubuntu@ubuntu: ~ $ echo "4!= 4 "| antes de Cristo
0
ubuntu@ubuntu: ~ $ echo "2> 5" | antes de Cristo
0
ubuntu@ubuntu: ~ $ echo "4<=4” | bc
1

Operadores booleanos

Los operadores booleanos o lógicos se utilizan en declaraciones condicionales para realizar algunas decisiones lógicas. Los siguientes son 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'.

ubuntu@ubuntu: ~ $ echo “-5 && 0” | antes de Cristo
0
ubuntu@ubuntu: ~ $ echo "-1 || 0 ”| antes de Cristo
1
ubuntu@ubuntu: ~ $ echo "! 0 ”| antes de Cristo
1

Declaraciones condicionales

Las declaraciones condicionales se utilizan para ejecutar comandos específicos dependiendo de la condición aplicada. La condición aplicada en la declaración condicional implica operadores lógicos y de comparación. El siguiente es el ejemplo de declaraciones condicionales con el comando 'BC'.

ubuntu@ubuntu: ~ $ a = 15
ubuntu@ubuntu: ~ $ b = 20
Ubuntu@ubuntu: ~ $ echo 'if (a> b) imprimir "a is mayor" más imprima "b es mayor"' | BC -L
B es mayor

En el ejemplo anterior, la declaración verifica si A es mayor que B o no. Si A es mayor que B, imprimirá "A es mayor"; De lo contrario, imprimirá “B es mayor."Podemos aplicar cualquier condición utilizando operadores booleanos y de comparación en el ejemplo anterior.

Funciones matemáticas

El comando 'BC' también proporciona algunas funciones matemáticas incorporadas que podemos usar sin definirlas. Las siguientes son algunas funciones esenciales utilizadas con el comando 'BC' en Bash.

  • S (x): Devuelve sinuso de x donde x está en radianes
  • C (x): Devuelve el coseno de x donde x está en radianes
  • hacha): Devuelve arctangent de x y el resultado está en radianes
  • sqrt (x): Devuelve la raíz cuadrada de x. Causa un error de tiempo de ejecución cuando x es negativo
  • L (x): Devuelve el registro natural de la x.

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

ubuntu@ubuntu: ~ $ pi = 3.1415
ubuntu@ubuntu: ~ $ echo "s ($ pi/2)" | BC -L
1
ubuntu@ubuntu: ~ $ echo "c ($ pi/2)" | BC -L
0
ubuntu@ubuntu: ~ $ echo "a (1)" | BC -L
0.7854

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

ubuntu@ubuntu: ~ $ echo “sqrt (4)” | BC -L
2

Mientras intenta calcular la raíz cuadrada de un número negativo, el shell lanzará un error de tiempo de ejecución.

ubuntu@ubuntu: ~ $ echo “sqrt (-2)” | BC -L
Error de tiempo de ejecución (func = (main), ADR = 4): raíz cuadrada de un número negativo

El logaritmo natural de un número se puede calcular en BASH utilizando el comando 'BC' de la siguiente manera.

ubuntu@ubuntu: ~ $ 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 discutido utilizando el comando 'BC' para realizar operaciones aritméticas avanzadas en Bash.