BC para realizar operações aritméticas avançadas em bash

BC para realizar operações aritméticas avançadas em bash
Calculadora Básica, também conhecida como 'BC', é um utilitário de linha de comando Linux usado para realizar aritméticos e álgebra avançados em scripts de bash. Ele fornece muitas funções matemáticas diferentes como sine, cosseno, tangente e logaritmo natural em bash. O Bash não pode executar operações aritméticas avançadas, como comparar carros alegóricos; É aí que o BC é útil. O comando 'BC' foi precedido por 'DC' (calculadora de mesa), um utilitário Unix. Neste tutorial, usaremos o comando 'BC' para realizar operações aritméticas avançadas.

Realizando operações aritméticas básicas

Operações aritméticas simples como adição, subtração, divisão e multiplicação podem ser executadas usando o comando 'BC'. A sintaxe para aplicar operadores binários simples em bash usando o comando 'BC' é o seguinte.

ubuntu@ubuntu: ~ $ echo “ ”| bc

Nesta seção, usaremos o comando 'BC' para realizar operações aritméticas simples.

ubuntu@ubuntu: ~ $ num1 = 2.35322 5
ubuntu@ubuntu: ~ $ num2 = 1.223353
ubuntu@ubuntu: ~ $ echo “$ num1+$ num2” | bc
3.576578
ubuntu@ubuntu: ~ $ echo “$ num1- $ num2” | bc
1.129872
ubuntu@ubuntu: ~ $ echo “$ num1*$ num2” | bc
2.878824
ubuntu@ubuntu: ~ $ echo “$ num1/$ num2” | bc
1

No exemplo acima, durante a divisão, obtivemos o resultado sem pontos decimais. Para obter o resultado até os pontos decimais 'n', precisamos definir o valor da escala como 'n', como mostrado no exemplo a seguir.

ubuntu@ubuntu: ~ $ echo “escala = 10; $ num1/$ num2 ”| bc
1.9235862420

Como alternativa, podemos usar o comando '-l' e o comando 'BC' para obter saída decimal.

ubuntu@ubuntu: ~ $ echo “$ num1/$ num2” | bc -l
1.92358624207403750184

O comando 'BC' também pode ser usado para executar a divisão de módulo e calcular o poder de um número em scripts de bash.

ubuntu@ubuntu: ~ $ echo “10%4” | bc
2
ubuntu@ubuntu: ~ $ echo “10^2” | bc
100

Realizando operações aritméticas avançadas

Até agora, usamos o comando 'BC' para executar algumas operações aritméticas básicas, como adição, subtração, multiplicação, etc., agora; Nesta seção, usaremos o comando 'BC' para realizar algumas operações aritméticas avançadas. Discutiremos como podemos usar operadores de comparação, operadores lógicos ou booleanos, funções matemáticas avançadas e declarações condicionais em Bash usando o comando 'BC'.

Operadores de comparação

Os operadores de comparação pegam dois números, compare -os e depois retornem 1 ou 0 dependendo da comparação. Se a comparação for verdadeira, então o resultado é Verdadeiro (1); Caso contrário, é Falso (0). A seguir, alguns exemplos de operadores de comparação.

  • num1> num2: Esta comparação retornará 1 Se o Num1 é maior que o Num2.
  • Num1 < num2: O resultado será 1 Se o Num1 é menor que o Num2.
  • Num1 <= num2: O resultado será 1 Se o Num1 é menor ou igual ao Num2.
  • num1> = num2: O resultado será 1 Se o Num1 é maior ou igual ao Num2.
  • num1 == num2: O resultado será 1 Se o Num1 é igual ao Num2.
  • Num1 != num2: O resultado será 1 Se ambos os números não forem iguais.

A seguir, alguns exemplos de operadores de comparação usados ​​junto com o comando 'BC'.

ubuntu@ubuntu: ~ $ echo “5 == 5” | bc
1
ubuntu@ubuntu: ~ $ echo “4!= 4 ”| bc
0
ubuntu@ubuntu: ~ $ echo “2> 5” | bc
0
ubuntu@ubuntu: ~ $ echo “4<=4” | bc
1

Operadores booleanos

Os operadores booleanos ou lógicos são usados ​​em declarações condicionais para realizar algumas decisões lógicas. A seguir estão os três operadores lógicos básicos.

  • stat1 && stat2: Isso retornará 1 Se as duas declarações são diferente de zero.
  • STAT1 || STAT2: Isso retornará 1 Se alguma das declarações for diferente de zero.
  • ! Estado: Isso retornará 1 Se a declaração for diferente de zero e vice versa.

Os exemplos a seguir ilustram como os operadores lógicos são usados ​​com o comando 'BC'.

ubuntu@ubuntu: ~ $ echo “-5 && 0” | bc
0
ubuntu@ubuntu: ~ $ echo “-1 || 0 ”| bc
1
ubuntu@ubuntu: ~ $ echo “! 0 ”| bc
1

Declarações condicionais

As declarações condicionais são usadas para executar comandos específicos, dependendo da condição aplicada. A condição aplicada na declaração condicional envolve operadores lógicos e de comparação. A seguir, o exemplo de declarações condicionais com o comando 'BC'.

ubuntu@ubuntu: ~ $ a = 15
ubuntu@ubuntu: ~ $ b = 20
ubuntu@ubuntu: ~ $ echo 'if (a> b) impressão “a é maior” Else impressão “b é maior”' | bc -l
B é maior

No exemplo acima, a declaração verifica se A é maior que B ou não. Se A for maior que B, ele imprimirá "A é maior"; Caso contrário, ele imprimirá “B é maior.”Podemos aplicar qualquer condição usando operadores booleanos e de comparação no exemplo acima.

Funções matemáticas

O comando 'BC' também fornece algumas funções matemáticas embutidas que podemos usar sem defini-los. A seguir, estão algumas funções essenciais usadas com o comando 'BC' em Bash.

  • s (x): retorna seno de x onde x está em radianos
  • C (x): retorna cosseno de x onde x está em radianos
  • machado): retornos arctangent de x e o resultado está em radianos
  • sqrt (x): Retorna raiz quadrada de x. Causa erro de tempo de execução quando x é negativo
  • L (x): Retorna o log natural do X.

Essas funções podem ser usadas com o comando 'BC', como mostrado nos exemplos a seguir.

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

A raiz quadrada de um número pode ser calculada em Bash usando o comando 'BC', como mostrado na figura a seguir.

ubuntu@ubuntu: ~ $ echo “sqrt (4)” | bc -l
2

Ao tentar calcular a raiz quadrada de um número negativo, o shell lançará um erro de tempo de execução.

ubuntu@ubuntu: ~ $ echo “sqrt (-2)” | bc -l
Erro de tempo de execução (func = (principal), ADR = 4): raiz quadrada de um número negativo

O logaritmo natural de um número pode ser calculado em Bash usando o comando 'BC' da seguinte maneira.

ubuntu@ubuntu: ~ $ echo “l (2)” | bc -l
.69314718055994530941

Conclusão

Ao escrever scripts de automação em bash, às vezes precisamos de funções matemáticas avançadas e operadores lógicos para executar comandos. O comando 'BC' fornece muitas funções e operadores matemáticos avançados para realizar cálculos aritméticos de alto nível. Este tutorial discutiu usando o comando 'BC' para executar operações aritméticas avançadas em Bash.