Programação BASH

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 do Linux usado para realizar aritmética e álgebra avançadas em scripts bash. Ele fornece muitas funções matemáticas diferentes, como seno, cosseno, tangente, logaritmo natural em bash. O Bash não pode realizar operações aritméticas avançadas, como comparar floats; é aí que bc vem a calhar. O comando 'bc' foi precedido por 'dc' (Desk Calculator), um utilitário UNIX. Neste tutorial, usaremos o comando 'bc' para realizar operações aritméticas avançadas.

Execução de operações aritméticas básicas

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

[email protegido]: ~ $ echo “ ”| ac

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

[email protegido]: ~ $ num1 = 2.35322 5
[email protegido]: ~ $ num2 = 1.223353
[email protegido]: ~ $ echo “$ num1 + $ num2” | ac
3.576578
[email protegido]: ~ $ echo “$ num1- $ num2” | ac
1.129872
[email protegido]: ~ $ echo “$ num1 * $ num2” | ac
2.878824
[email protegido]: ~ $ echo “$ num1 / $ num2” | ac
1

No exemplo acima, ao realizar a divisão, obtivemos o resultado sem casas decimais. Para obter o resultado até 'n' casas decimais, temos que definir o valor da escala para 'n' como mostrado no exemplo a seguir.

[email protegido]: ~ $ echo “escala = 10; $ num1 / $ num2 ”| ac
1.9235862420

Alternativamente, podemos usar o sinalizador '-l' e o comando 'bc' para obter a saída decimal.

[email protegido]: ~ $ echo “$ num1 / $ num2” | bc -l
1.92358624207403750184

O comando 'bc' também pode ser usado para realizar a divisão do módulo e calcular a potência de um número em scripts bash.

[email protegido]: ~ $ echo “10% 4” | ac
2
[email protegido]: ~ $ echo “10 ^ 2” | ac
100

Execução de operações aritméticas avançadas

Até agora, usamos o comando 'bc' para realizar 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, comparam-nos e retornam 1 ou 0 dependendo da comparação. Se a comparação for verdadeira, o resultado é VERDADEIRO (1); caso contrário, é FALSE (0). A seguir estão 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 é menos 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 estão alguns exemplos de operadores de comparação usados ​​junto com o comando 'bc'.

[email protegido]: ~ $ echo “5 == 5” | ac
1
[email protegido]: ~ $ echo “4!= 4 ”| ac
0
[email protegido]: ~ $ echo “2> 5” | ac
0
[email protegido]: ~ $ echo “4<=4” | bc
1

Operadores booleanos

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 vai voltar 1 se ambas as declarações são diferente de zero.
  • stat1 || stat2: Isso vai voltar 1 se alguma das declarações é diferente de zero.
  • ! Estado: Isso vai voltar 1 se a declaração é diferente de zero e vice versa.

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

[email protegido]: ~ $ echo “-5 && 0” | ac
0
[email protegido]: ~ $ echo “-1 || 0 ”| ac
1
[email protegido]: ~ $ echo “! 0 ”| ac
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 está o exemplo de declarações condicionais com o comando 'bc'.

[email protegido]: ~ $ a = 15
[email protegido]: ~ $ b = 20
[email protected]: ~ $ echo 'if (a> b) print “a is maior” else print “b is maior”' | bc -l
b é maior

No exemplo acima, a instrução verifica se a é maior que b ou não. Se a for maior que b, ele imprimirá “a é maior”; caso contrário, 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 integradas que podemos usar sem defini-las. A seguir estão algumas funções essenciais usadas com o comando 'bc' no bash.

  • s (x): retorna o seno de x onde x está em radianos
  • c (x): retorna o cosseno de x onde x está em radianos
  • machado): retorna um arco tangente de xe o resultado está em radianos
  • sqrt (x): retorna a 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', conforme mostrado nos exemplos a seguir.

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

A raiz quadrada de um número pode ser calculada em bash usando o comando 'bc', conforme mostrado na figura a seguir.

[email protegido]: ~ $ 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.

[email protegido]: ~ $ 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' como segue.

[email protegido]: ~ $ 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 matemáticas avançadas e operadores para realizar cálculos aritméticos de alto nível. Este tutorial discutido usando o comando 'bc' para realizar operações aritméticas avançadas em bash.

Melhores jogos de linha de comando para Linux
A linha de comando não é apenas sua maior aliada ao usar o Linux - ela também pode ser uma fonte de entretenimento porque você pode usá-la para jogar ...
Melhores aplicativos de mapeamento de gamepad para Linux
Se você gosta de jogar no Linux com um gamepad em vez de um teclado típico e sistema de entrada de mouse, existem alguns aplicativos úteis para você. ...
Ferramentas úteis para jogadores de Linux
Se você gosta de jogar no Linux, é provável que tenha usado aplicativos e utilitários como Wine, Lutris e OBS Studio para melhorar a experiência de jo...