Cálculos matemáticos em bash

Cálculos matemáticos em bash

Bash é uma poderosa linguagem de script que pode ser usada para uma variedade de tarefas, incluindo cálculos matemáticos. No entanto, trabalhar com números em Bash pode ser um desafio, especialmente ao lidar com a aritmética de ponto flutuante, números grandes e cálculos complexos.

Neste artigo, exploraremos algumas dicas e truques para cálculos matemáticos em Bash.

Use a ferramenta certa para o trabalho

Bash possui várias ferramentas embutidas para realizar cálculos matemáticos, como o (()) e $ (()) operadores, o expr comando e o bc comando. Cada ferramenta tem seus pontos fortes e fracos, e escolher o certo pode fazer uma grande diferença em termos de desempenho e precisão.

  • O '(())' e '$ (())' Os operadores são as ferramentas mais usadas para executar aritmética inteira em bash. Eles suportam todas as operações aritméticas básicas, bem como operações e comparações bittusizadas. No entanto, eles não suportam aritmética de ponto flutuante, e sua precisão é limitada ao tamanho do tipo inteiro do seu sistema.
  • O 'Expr' O comando é uma ferramenta mais poderosa que suporta aritmética de ponto flutuante, bem como operações de cordas e expressões regulares. No entanto, é mais lento que os operadores (()) e $ (()), e sua saída deve ser capturada usando a substituição de comando.
  • O 'BC O comando é a ferramenta mais versátil para realizar cálculos matemáticos em bash. Ele suporta aritmética de precisão arbitrária, números complexos e funções avançadas, como funções trigonométricas e logarítmicas. No entanto, requer um processo separado a ser lançado, que pode desacelerar seu script.

Operaçoes aritimeticas

Bash fornece operações aritméticas básicas como adição, subtração, multiplicação e divisão. Essas operações podem ser realizadas usando a sintaxe de expansão aritmética $ ((expressão)). Por exemplo, o comando a seguir adicionará 3 e 4:

eco $ ((3 + 4))
1eco $ ((3 + 4))

Isso será lançado 7.

Da mesma forma, podemos executar outras operações aritméticas, como subtração, multiplicação e divisão:

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

Isso será lançado 4, 20, e 4, respectivamente.

Variáveis ​​e operações de matemática

Também podemos usar variáveis ​​em nossos cálculos de matemática. Por exemplo:

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

Isso será lançado 7.

Também podemos executar operações nas próprias variáveis, assim:

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

Isso será lançado 10. A variável A agora tem um valor de 10 depois de ser multiplicado por B.

Operações de matemática de ponto flutuante

O Bash não suporta nativamente as operações matemáticas de ponto flutuante, mas podemos usar ferramentas externas como BC e AWK para executar esses cálculos.

'BC' é uma calculadora de linha de comando que suporta precisão arbitrária. Podemos usá-lo para executar cálculos de ponto flutuante como este:

eco "escala = 2; 10/3" | bc
1eco "escala = 2; 10/3" | bc

Isso será lançado 3.33.

A AWK é uma poderosa ferramenta de processamento de texto que também suporta operações de matemática. Podemos usá-lo para executar cálculos de ponto flutuante como este:

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

Isso será lançado 4.20.

Use funções para simplificar os cálculos complexos

Ao trabalhar com cálculos complexos no Bash, geralmente é útil dividi -los em funções menores e mais gerenciáveis. As funções permitem que você encapsule um bloco de código e reutilizá -lo várias vezes ao longo do seu script, o que pode tornar seu código mais modular e mais fácil de entender.

Por exemplo, digamos que você queira calcular a área de um círculo, dada o seu raio. Você pode criar uma função chamada “Calcular_area” Isso toma o raio como um argumento e retorna a área:

#!/bin/bash pi = 3.14159 calcular_area () raio local = $ 1 área local = $ (echo "$ pi * $ raio * $ raio" | bc) echo $ área raio = 5 área = $ (calcular_area $ raio) eco "a área de um círculo com raio $ raio é $ área "
12345678910111213#!/bin/bash pi = 3.14159 calcular_area () raio local = $ 1 área local = $ (echo "$ pi * $ raio * $ raio" | bc) echo $ área raio = 5Area = $ (calcular_area $ raio) echo "a área de um círculo com com o círculo com com o círculo com com o círculo com com o círculo com o círculo com o círculo com o círculo". Radius $ raio é $ área "

Este script define uma função chamada calcular_area que toma o raio como um argumento, calcula a área usando a fórmula A = πr^2, e retorna o resultado. A parte principal do script chama a função com um raio de 5, captura a saída usando a substituição de comando e imprime o resultado na tela.

Use declarações condicionais para manuseio de erros

Ao realizar cálculos matemáticos no Bash, é importante lidar com erros graciosamente, especialmente ao lidar com a entrada do usuário ou fontes de dados externas. Uma maneira de fazer isso é usar declarações condicionais para verificar se há erros e fornecer feedback ao usuário.

Por exemplo, digamos que você queira calcular o fatorial de um número, dado como entrada do usuário. Você pode criar um script que usa um loop para calcular o fatorial e uma declaração condicional para verificar se há erros:

#!/bin/bash leia -p "Digite um número:" num se ! [["$ num" = ~ ^[0-9]+$]]; Então eco "Erro: '$ num' não é um número inteiro válido" Sair 1 Fi Fatorial = 1 para ((i = 1; i<=$num; i++)); do factorial=$(expr "$factorial * $i") done echo "The factorial of $num is $factorial"
123456789101112131415#!/bin/bash leia -p "Digite um número:" num se ! [["$ num" = ~ ^[0-9]+$]]; Então echo "Erro: '$ num' não é um número inteiro válido" Sair 1Fi Fatorial = 1 for ((i = 1; i;<=$num; i++)); do factorial=$(expr "$factorial * $i")done echo "The factorial of $num is $factorial"

Este script lê um número do usuário usando o comando de leitura e usa uma instrução condicional para verificar se a entrada é um número inteiro válido. Se a entrada não for válida, o script imprime uma mensagem de erro e sai com um código de status diferente de zero. Se a entrada for válida, o script usará um loop para calcular o fatorial e imprime o resultado na tela.

Conclusão

Neste artigo, exploramos como realizar cálculos matemáticos em Bash. Aprendemos a usar operações aritméticas básicas, variáveis ​​e ferramentas externas como bc e Awk Para realizar operações de matemática em Bash. Com essas ferramentas à nossa disposição, podemos realizar uma variedade de cálculos matemáticos em Bash, da aritmética básica a operações mais complexas.