Cálculos matemáticos en Bash

Cálculos matemáticos en Bash

Bash es un poderoso lenguaje de secuencias de comandos que se puede utilizar para una variedad de tareas, incluidos los cálculos matemáticos. Sin embargo, trabajar con números en Bash puede ser un desafío, especialmente cuando se trata de aritmética de punto flotante, grandes números y cálculos complejos.

En este artículo, exploraremos algunos consejos y trucos para los cálculos matemáticos en Bash.

Use la herramienta adecuada para el trabajo

Bash tiene varias herramientas incorporadas para realizar cálculos matemáticos, como el (()) y ps operadores, el expr comando, y el antes de Cristo dominio. Cada herramienta tiene sus fortalezas y debilidades, y elegir la correcta puede marcar una gran diferencia en términos de rendimiento y precisión.

  • El '(())' y ps Los operadores son las herramientas más utilizadas para realizar la aritmética de enteros en Bash. Admiten todas las operaciones aritméticas básicas, así como las operaciones y comparaciones bit a bits. Sin embargo, no admiten la aritmética de punto flotante, y su precisión se limita al tamaño del tipo entero en su sistema.
  • El 'Expr' El comando es una herramienta más poderosa que admite la aritmética de punto flotante, así como las operaciones de cadena y las expresiones regulares. Sin embargo, es más lento que los operadores (()) y $ (()), y su salida debe capturarse utilizando la sustitución del comando.
  • El 'antes de Cristo El comando es la herramienta más versátil para realizar cálculos matemáticos en Bash. Admite aritmética de precisión arbitraria, números complejos y funciones avanzadas, como funciones trigonométricas y logarítmicas. Sin embargo, requiere que se inicie un proceso separado, lo que puede ralentizar su script.

Operaciones aritmeticas

Bash proporciona operaciones aritméticas básicas como adición, resta, multiplicación y división. Estas operaciones se pueden realizar utilizando la sintaxis de expansión aritmética $ ((expresión)). Por ejemplo, el siguiente comando agregará 3 y 4:

Echo $ ((3 + 4))
1Echo $ ((3 + 4))

Esto saldrá 7.

Del mismo modo, podemos realizar otras operaciones aritméticas como resta, multiplicación y división:

Echo $ (((6 - 2)) Echo $ ((4 * 5)) Echo $ ((12/3))
123Echo $ (((6 - 2)) Echo $ ((4 * 5)) Echo $ ((12/3))

Esto saldrá 4, 20, y 4, respectivamente.

Variables y operaciones matemáticas

También podemos usar variables en nuestros cálculos de matemáticas. Por ejemplo:

a = 5 b = 2 echo $ ((a + b))
123a = 5b = 2eco $ ((a + b))

Esto saldrá 7.

También podemos realizar operaciones en las variables en sí, como esta:

a = 5 b = 2 echo $ ((a *= b))
123a = 5b = 2eCho $ ((a *= b))

Esto saldrá 10. La variable A ahora tiene un valor de 10 después de ser multiplicado por B.

Operaciones matemáticas de punto flotante

Bash no admite de forma nativa las operaciones de matemáticas de punto flotante, pero podemos usar herramientas externas como BC y AWK para realizar estos cálculos.

'antes de Cristo' es una calculadora de línea de comandos que admite una precisión arbitraria. Podemos usarlo para realizar cálculos de punto flotante como este:

echo "escala = 2; 10/3" | antes de Cristo
1echo "escala = 2; 10/3" | antes de Cristo

Esto saldrá 3.33.

AWK es una poderosa herramienta de procesamiento de texto que también admite operaciones matemáticas. Podemos usarlo para realizar cálculos de punto flotante como este:

Echo "10.5 2.5 "| Awk 'printf"%.2f \ n ", $ 1 / $ 2 '
1Echo "10.5 2.5 "| Awk 'printf"%.2f \ n ", $ 1 / $ 2 '

Esto saldrá 4.20.

Use funciones para simplificar cálculos complejos

Cuando se trabaja con cálculos complejos en Bash, a menudo es útil dividirlos en funciones más pequeñas y más manejables. Las funciones le permiten encapsular un bloque de código y reutilizarlo varias veces a lo largo de su script, lo que puede hacer que su código sea más modular y más fácil de entender.

Por ejemplo, supongamos que desea calcular el área de un círculo, dado su radio. Puedes crear una función llamada "Calcular_area" que toma el radio como argumento y devuelve el área:

#!/bin/bash pi = 3.14159 calculado_area () radio local = $ 1 área local = $ (echo "$ pi * $ radio * $ radio" | bc) echo $ área radio = 5 área = $ (calculate_area $ radio) echo "el área de un círculo con radio $ radio es $ área "
12345678910111213#!/bin/bash pi = 3.14159 calculado_area () Radius local = $ 1 área local = $ (echo "$ pi * $ radio * $ radio" | bc) echo $ área radio = 5area = $ (calcule_area $ radio) echo "el área de un círculo con un círculo con Radius $ Radius es $ área "

Este script define una función llamada calculación_area que toma el radio como argumento, calcula el área usando la fórmula A = πr^2, y devuelve el resultado. La parte principal del script luego llama a la función con un radio de 5, captura la salida utilizando la sustitución del comando e imprime el resultado en la pantalla.

Utilice declaraciones condicionales para el manejo de errores

Al realizar cálculos matemáticos en BASH, es importante manejar los errores con gracia, especialmente cuando se trata de entrada del usuario o fuentes de datos externas. Una forma de hacerlo es utilizar declaraciones condicionales para verificar los errores y proporcionar comentarios al usuario.

Por ejemplo, supongamos que desea calcular el factorial de un número, dado como entrada del usuario. Puede crear un script que use un bucle para calcular el factorial y una declaración condicional para verificar los errores:

#!/bin/bash lectura -p "Ingrese un número:" Num if ! [["$ num" = ~ ^[0-9]+$]]; Entonces echo "error: '$ num' no es un entero válido" salida 1 fi factorial = 1 para ((i = 1; i<=$num; i++)); do factorial=$(expr "$factorial * $i") done echo "The factorial of $num is $factorial"
123456789101112131415#!/bin/bash lectura -p "Ingrese un número:" Num if ! [["$ num" = ~ ^[0-9]+$]]; Entonces echo "Error: '$ num' no es un entero válido" Salida 1fi Factorial = 1For ((i = 1; I<=$num; i++)); do factorial=$(expr "$factorial * $i")done echo "The factorial of $num is $factorial"

Este script lee un número del usuario usando el comando Read y usa una declaración condicional para verificar si la entrada es un entero válido. Si la entrada no es válida, el script imprime un mensaje de error y sale con un código de estado distinto de cero. Si la entrada es válida, el script usa un bucle para calcular el factorial e imprime el resultado en la pantalla.

Conclusión

En este artículo, exploramos cómo realizar cálculos matemáticos en Bash. Aprendimos a usar operaciones aritméticas básicas, variables y herramientas externas como antes de Cristo y asombrar Para realizar operaciones matemáticas en Bash. Con estas herramientas a nuestra disposición, podemos realizar una variedad de cálculos matemáticos en Bash, desde aritméticas básicas hasta operaciones más complejas.