<Anterior | Conteúdo | Próxima>
Aritmética Simples
Os operadores aritméticos comuns estão listados na tabela abaixo:
Tabela 34-3: Operadores aritméticos
Descrição do operador
Descrição do operador
+ Adição
- Subtração
* Multiplicação
/ Divisão inteira
** Exponenciação
% Módulo (resto)
A maioria deles é autoexplicativa, mas a divisão inteira e o módulo requerem mais discussão.
Como a aritmética do shell opera apenas em números inteiros, os resultados da divisão são sempre números inteiros:
[me @ linuxbox ~] $ echo $ ((5/2))
2
[me @ linuxbox ~] $ echo $ ((5/2))
2
Isso torna a determinação de um resto em uma operação de divisão mais importante:
[me @ linuxbox ~] $ echo $ ((5% 2))
1
[me @ linuxbox ~] $ echo $ ((5% 2))
1
Usando os operadores de divisão e módulo, podemos determinar que 5 dividido por 2 resulta em 2, com um resto de 1.
Calcular o resto é útil em loops. Ele permite que uma operação seja realizada em intervalos especificados durante a execução do loop. No exemplo abaixo, exibimos uma linha de números, destacando cada múltiplo de 5:
#! / Bin / bash
# módulo: demonstra o operador módulo para ((i = 0; i <= 20; i = i + 1)); Faz
resto = $ ((i% 5))
if ((resto == 0)); então printf "<% d>" $ i
outro
printf "% d" $ i
fi feito
printf "\ n"
#! / Bin / bash
# módulo: demonstra o operador módulo para ((i = 0; i <= 20; i = i + 1)); Faz
resto = $ ((i% 5))
if ((resto == 0)); então printf "<% d>" $ i
outro
printf "% d" $ i
fi feito
printf "\ n"
Quando executado, os resultados são assim:
[me @ linuxbox ~] $ módulo
<0> 1 2 3 4 <5> 6 7 8 9 <10> 11 12 13 14 <15> 16 17 18 19 <20>
[me @ linuxbox ~] $ módulo
<0> 1 2 3 4 <5> 6 7 8 9 <10> 11 12 13 14 <15> 16 17 18 19 <20>