Unix / Linux - Exemplo de operadores aritméticos de shell
Os seguintes operadores aritméticos são suportados pelo Bourne Shell.
Assumir variável a contém 10 e variável b detém 20 então -
Operador | Descrição | Exemplo |
---|---|---|
+ (Adição) | Adiciona valores em qualquer lado do operador | `expr $ a + $ b` dará 30 |
- (Subtração) | Subtrai operando direito do operando esquerdo | `expr $ a - $ b` dará -10 |
* (Multiplicação) | Multiplica os valores em ambos os lados do operador | `expr $ a \ * $ b` dará 200 |
/ (Divisão) | Divide operando esquerdo pelo operando direito | `expr $ b / $ a` dará 2 |
% (Módulo) | Divide operando esquerdo pelo operando direito e retorna o resto | `expr $ b% $ a` dará 0 |
= (Atribuição) | Atribui o operando direito no operando esquerdo | a = $ b atribuiria o valor de b em a |
== (Igualdade) | Compara dois números, se ambos forem iguais, retorna verdadeiro. | [$ a == $ b] retornaria falso. |
! = (Não Igualdade) | Compara dois números, se ambos forem diferentes, retorna verdadeiro. | [$ a! = $ b] retornaria verdadeiro. |
É muito importante entender que todas as expressões condicionais devem estar entre colchetes com espaços ao redor delas, por exemplo [ $a == $b ] está correto enquanto, [$a==$b] está incorreto.
Todos os cálculos aritméticos são feitos com números inteiros longos.
Exemplo
Aqui está um exemplo que usa todos os operadores aritméticos -
#!/bin/sh
a=10
b=20
val=`expr $a + $b`
echo "a + b : $val"
val=`expr $a - $b`
echo "a - b : $val"
val=`expr $a \* $b`
echo "a * b : $val"
val=`expr $b / $a`
echo "b / a : $val"
val=`expr $b % $a`
echo "b % a : $val"
if [ $a == $b ]
then
echo "a is equal to b"
fi
if [ $a != $b ]
then
echo "a is not equal to b"
fi
O script acima produzirá o seguinte resultado -
a + b : 30
a - b : -10
a * b : 200
b / a : 2
b % a : 0
a is not equal to b
Os seguintes pontos precisam ser considerados ao usar os Operadores Aritméticos -
Deve haver espaços entre os operadores e as expressões. Por exemplo, 2 + 2 não está correto; deve ser escrito como 2 + 2.
A expressão completa deve ser colocada entre ‘ ‘, chamadas de vírgulas invertidas.
Você deveria usar \ no * símbolo de multiplicação.
if...then...fi declaração é uma declaração de tomada de decisão que foi explicada no próximo capítulo.