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 “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 ”| ac1.9235862420
Alternativamente, podemos usar o sinalizador '-l' e o comando 'bc' para obter a saída decimal.
[email protegido]: ~ $ echo “$ num1 / $ num2” | bc -l1.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” | ac2
[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” | ac1
[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” | ac0
[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 -l2
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 -lErro 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.