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.

operadores-unix-basic.htm