Operadores – Shell-script


O shell possui os principais operadores utilizados em linguagem de programação semelhantes ao shell como C, Perl, Php com exceção dos operadores de incremento (++ e – -). Abaixo seguem os operadores aritméticos, comparação, lógicos e bit-a-bit usados pelo shell para a criação de variáveis, operações aritméticas, comparações e teste lógicos.

Operadores aritméticos

Operadores Aritméticos
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Módulo
** Exponenciação

OBS: Para usar o operador de multiplicação, é necessário usar uma barra invertida antes do sinal de multiplicação \*, usando o comando de expressão aritméticas expr ou a expansão aritimética $( ( expressão ) ).

Exemplos:

echo `expr 3 + 2`
echo $( (3+2) )

echo `expr 3 + 2 \* 3`
echo $( (3+2*3) )

echo `expr $( (3 +2) ) \* 3`
echo $( (3+2*3) )

echo `expr 3 % 2`
echo $((3 % 2))

VL=5
echo $(($VL**2))


Operadores Relacionais

Operadores Relacionais
== Igual
!= Diferente
> Maior
>= Maior ou Igual
< Menor
<= Menor ou Igual

Exemplos:

Comparação matemática Comparação em Script
5 == 6 If [ 5 -eq 6 ]
5 != 6 If [ 5 -ne 6 ]
5 < 6 If [ 5 -lt 6 ]
5 <= 6 If [ 5 -le 6 ]
5 > 6 If [ 5 -gt 6 ]
5 >= 6 If [ 5 -ge 6 ]

Operadores Lógicos

Operadores Lógicos
&& E lógico (AND)
|| OU lógico (OR)

&& – Verdadeiro se tanto a e b são verdadeiros ao mesmo tempo
| | – Verdadeiro se a ou b são verdadeiros

Exemplos:

&& (e)


| | (ou)

!  (não) – Verdadeiro se a não é verdadeiro

Operadores bit-a-bit

Para efetuar uma operação bit-a-bit é preciso usar a calculadora do próprio sistema operacional em modo científico, ou então, fazer as conversões de decimal em binário manualmente. Como exemplo abaixo:
https://gnulinuxbr.wordpress.com/2010/01/23/conversao-de-sistemas-de-numeracao/

Operadores de BIT
<< Deslocamento à esquerda
>> Deslocamento à direita
& E de bit (AND)
| OU de bit (OR)
^ OU exclusivo de bit (XOR)
~ Negação de bit
! NÃO de bit (NOT)

Exemplos:

a & bE – Os bits que estão ativos tanto em a quanto em b são ativados.
a | b OU – Os bits que estão ativos em a ou em b são ativados.
a ^ b XOR – Os bits que estão ativos em a ou em b, mas não em ambos, são ativados.
~ aNÃO – Os bits que estão ativos em a não são ativados, e vice-versa.
a << bDeslocamento à esquerda – Desloca os bits de a para b passos para a esquerda.
a >> bDeslocamento à direita – Desloca os bits de a para b passos para a direita.

A operação lógica AND significa operação lógica E e é representada por &. Este operador retorna 1 para cada posição em que ambos os valores comparados possuírem 1 ao mesmo tempo na mesma posição de bit. Se um dos valores possuir um 0 (zero) na mesma posição de bit, o perador retornará o valor 0.

Exemplo 1:

valor1 operador valor2 resultado
0 AND(&) 0 0
0 AND(&) 1 0
1 AND(&) 1 1
1 AND(&) 0 0

Exemplo 2:

valor decimal valor binário
20 10100
15 1111
em Binário 100
em Decimal 4

Exemplo 3:

Operador bit-a-bit OR (|)
A operação lógica OR significa operação lógica OU e é representada pela barra em pé |. Este operador retorna 1 para cada posição em que algum dos valores comparados possuírem um 1 na mesma posição de bit. Se os dois valores tiverem um 0 (zero) na mesma posição de bit, o operador retornará o valor 0. Se os dois valores tiverem um 1 (um) na mesma posição de bit, o operador retornará o valor 1.

Eemplo 1:

valor1 operador valor2 resultado
0 OR(|) 0 0
0 OR(|) 1 1
1 OR(|) 0 1
1 OR(|) 1 1

Exemplo 2:

valor decimal valor binário
6 110
5 101
em Binário 111
em Decimal 7

valor decimal valor binário
20 10100
15 1111
em Binário 100
em Decimal 4

Exemplo 3:

Operador bit-a-bit XOR (^)
A operação lógica XOR significa operação lógica OU EXCLUSIVO e é representada por ^. Este operador retorna 1 para cada posição em que algum dos valores comparados possuírem um 1 na mesma posição de bit. Se ambos valores tiverem 0 (zero) ou um (1) na mesma posição de bit, o operador retornará o valor 0.

Exemplo 1:

valor1 operador valor2 resultado
0 XOR(^) 0 0
0 XOR(^) 1 1
1 XOR(^) 0 1
1 XOR(^) 1 0

Exemplo 2:

valor decimal valor binário
6 110
4 100
em Binário 10
em Decimal 2

Exemplo 3:

Operador bit-a-bit NOT (~)
A operação lógica NOT significa operação lógica NÃO e é representada por ~. Este operador inverte os bits comparados onde for 0 ele põe 1 e onde for 1 ele põe 0. Este operador deve ser usado somente com expressões usando outros operadores bit-a-bit como AND(&), OR(|) ou XOR(^).

Exemplo 1:

valor decimal valor binário
5 1O1
em Binário O1O
Em Decimal 2

Exemplo 2:

O exemplo abaixo mostra o operador bit-a-bit NOT ~, onde estou usando duas variáveis A e B, e na variável B estou  usando o NOT ~.

Operadores de deslocamento de bit-a-bit (<<) (>>)
Existem dois operadores de deslocamento bit-a-bit onde são descritos abaixo:

• deslocamento bit-a-bit para a esquerda nos quais deslocado o número de casas  indicadas para a esquerda após o operador e representado por <<.

• deslocamento bit-a-bit para a direita, nos quais deslocado o número de casas indicadas para a direita após o operador e representado por >>.

Exemplo 1:

VL Decimal VL Binário Resultado
6 0000 0110 6
Deslocando 4 casas para a esquerda <<4 0110 0000 96
Deslocando 1 casas para a direita >>1 0000 0011 3

No exemplo acima é utilizado o número 6 que em binário é 0000 0110, onde é deslocado 4 casas para a esquerda, retornando o número 96 que em binário 0110 0000 e em seguida é deslocado 1 casa par a direita, retornando o número 3 que em binário 0000 0011.

Exemplo 2:


Abaixo segue uma tabela verdade resumida com os casos anteriores.

valor1 Valor 2 AND OR XOR
V V V V F
V F F V V

Um comentário sobre “Operadores – Shell-script

Os comentários estão desativados.