Você está na página 1de 3

Shell Script do zero

Aula 5 Operadores Lgicos de Conexo


Com estes operadores podemos conectar duas ou mais condies criadas com os operadores
de comparao, criando assim mais de um evento a ser testado pelo shell e a porta s ser aberta
se o resultado desta conexo for verdadeira. Abaixo aprenderemos sobre os conectores E e OU.

Vamos visualizar como ficam os conectores para ficar mais claro:

* No exemplo acima temos dois conectores, mas s exemplo, j que o correto ali seria apenas um
conector.

Operador lgico (E)


Entenda conjuno sendo a unio das condies
comparativas feitas pelos conectores.
rasgando o verbo: tudo que esta dentro dos
colchetes do if [ ]
A conjuno verdadeira se todas as condies de comparao forem verdadeiras, ento
mostro a tabela para entendermos a lgica.
N Condio 1 Conector Condio 2 Resultado do teste Explicao
1 V e V Verdadeiro Porque as duas condies so verdadeiras
2 F e V Falso falso porque apenas uma condio atende
3 V e F Falso falso porque apenas uma condio atende
4 F e F Falso Nenhuma condio atende

Exemplificando:

Vamos considerar esta lgica como se fosse um porteiro e ele libera o acesso de acordo com
a situao descrita abaixo:

S entra na festa casais que o homem se chama Csar E a mulher Juliana:

1 Csar e Juliana Entrada permitida (as duas condies so verdadeiras)


2 Paulo e Juliana O nome Juliana bate mas o nome Paulo no atende, barrados !
3 Csar e Mnica O nome Csar est na lista mas o nome Mnica no, barrados !
4 Jlio e Carolina Nenhum dos dois nomes esto na lista, barrados !
Muitas vezes vamos esbarrar com a necessidade de usar os conectores, vamos supor que eu
preciso de um if rodando apenas em duas situaes:

Eu fiz um script que diminua a velocidade dos meus downloads para 100k quando a minha
irm conectava o notebook na internet, mas quando o pc da minha me estava ligado
simultaneamente, como eu poderia diminuir a velocidade para 50k compensando duas mquinas
ligadas? Ento eu criei um if para esta situao.

Esta a parte que identifica as duas mquinas ligadas:


if [ $NOTE = ligado E $PCMAE = ligado ];then Para o conector E, basta lembrar:
Comando (wondershaper eth0 400 que igual a 50k ) se tudo verdadeiro ento executa.
fi
Eu usei vrios comandos para chegar no valor ligado antes de ser comparado e para outras
velocidades, mas aqui vamos nos prender apenas ao sentido deste comando citado acima.

Operador lgico (OU)

Aqui a conjuno verdadeira se uma ou outra condio for verdadeira (sendo as duas
verdadeiras tambm vlido):
N Condio 1 Conector Condio 2 Resultado do teste Explicao
1 V ou V Verdadeiro Porque pelo menos uma condio verdadeira
2 F ou V Verdadeiro Temos uma condio verdadeira, e suficiente
3 V ou F Verdadeiro Temos uma condio verdadeira, e suficiente
4 F ou F Falso Nenhuma condio verdadeira para validarmos

Exemplificando:

Vamos usar o mesmo exemplo da conexo anterior, s que desta vez eu preciso que apenas
uma condio seja verdadeira para que ele execute o comando, trocaremos o e pelo ou.

S entra na festa casais que o homem se chama Csar OU a mulher Juliana:

1 Csar ou Juliana Entrada permitida, as duas condies so verdadeiras


2 Paulo ou Juliana Entrada permitida, pelo menos uma condio verdadeira (juliana)
3 Csar ou Mnica Entrada permitida, a condio (Csar) valida a entrada
4 Jlio ou Carolina Nenhum dos dois nomes esto na lista, barrados !

Pegando o exemplo anterior do script que diminui a velocidade da internet, podemos pensar
na seguinte situao: E se eu quisesse diminuir a velocidade da internet para 100k
independentemente da quantidade de pcs ligados, ou seja, se o pc da minha irm OU o pc da minha
me estiverem ligados, ou se os dois estiverem simultaneamente, diminui para 100k e pronto.

if [ $NOTE = ligado OU $PCMAE = ligado ];then


Comando (wondershaper eth0 800 que igual a 100k)
fi
Na linguagem do shell o operador e representado como -a
e o operador ou representado por -o (no confundir com -zero)

Como mostrado abaixo:

1 condio 2 condio

Conectando as duas condies

Do exemplo acima podemos entender: Se a varivel POWER diferente de desligado E a


Varivel PAINEL igual a funcionando ento faa o comando.

Na prxima aula vamos aplicar estes conceitos escrevendo um script mais elaborado.