<Anterior | Conteúdo | Próxima>
Expansão Aritmética
O shell permite que a aritmética seja realizada por expansão. Isso nos permite usar o prompt do shell como uma calculadora:
[me @ linuxbox ~] $ echo $ ((2 + 2))
4
[me @ linuxbox ~] $ echo $ ((2 + 2))
4
A expansão aritmética usa a forma:
$ ((expressão))
onde expressão é uma expressão aritmética que consiste em valores e operadores aritméticos.
A expansão aritmética suporta apenas números inteiros (números inteiros, sem decimais), mas pode realizar várias operações diferentes. Aqui estão alguns dos operadores suportados:
Tabela 7-1: Operadores aritméticos
Operaparar Description
+ Adição
- Subtração
* Multiplicação
/ Divisão (mas lembre-se, uma vez que a expansão só suporta aritmética de inteiros, os resultados são inteiros).
% Módulo, que significa simplesmente “resto”.
** Exponenciação
Os espaços não são significativos em expressões aritméticas e as expressões podem ser aninhadas. Por exemplo, para multiplicar 5 ao quadrado por 3:
[me @ linuxbox ~] $ echo $ (($ ((5 ** 2)) * 3))
75
[me @ linuxbox ~] $ echo $ (($ ((5 ** 2)) * 3))
75
Parênteses simples podem ser usados para agrupar várias subexpressões. Com esta técnica, podemos reescrever o exemplo acima e obter o mesmo resultado usando uma única expansão em vez de duas:
[me @ linuxbox ~] $ echo $ (((5 ** 2) * 3))
75
[me @ linuxbox ~] $ echo $ (((5 ** 2) * 3))
75
Aqui está um exemplo usando os operadores de divisão e resto. Observe o efeito da divisão de inteiros:
[me @ linuxbox ~] $ echo Five dividido por dois é igual a $ ((5/2))
Cinco dividido por dois é igual a 2
[me @ linuxbox ~] $ echo com $ ((5% 2)) restante.
com 1 restante.
[me @ linuxbox ~] $ echo Five dividido por dois é igual a $ ((5/2))
Cinco dividido por dois é igual a 2
[me @ linuxbox ~] $ echo com $ ((5% 2)) restante.
com 1 restante.
A expansão aritmética é abordada com mais detalhes no Capítulo 34.