[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] if com multiplas condições
From: |
Tiago Peczenyj |
Subject: |
Re: [shell-script] if com multiplas condições |
Date: |
Thu, 28 Feb 2013 10:16:48 -0300 |
vamos fazer a tabela verdade dessa expressão
answer
y -> (y != y) OR (y != n) -> FALSE OR TRUE -> TRUE
n -> (n != y) OR (n != n) -> TRUE OR FALSE -> TRUE
lololol -> (lololo != y) OR (lololo != n) -> TRUE OR TRUE -> TRUE
Eu acredito que o que vc quer ver é se a resposta é diferente de y E
de n -- para isso vc pode usar a operação AND
nesse caso vc pode usar a opção -a na sua primeira tentativa ou vc
pode fazer uso do select
PS3='answer? '
select answer in yes no; do
case $answer in
no) echo "nao faz isso" ;;
yes) echo "faz isso ;;
esac
done
o select restringe as opções e vc não tem que tratar um terceiro caso.
mas se vc ainda precisa vc pode usar read + case colocando um
*) echo "resposta invalida" ;;
abaixo do no / yes
2013/2/28 Leonardo Bacha Abrantes <address@hidden>
>
>
>
> Bom dia galera,
>
> Estou fazendo um script com um if que testa duas condições:
>
> read answer
>
> tentei das duas formas abaixo. o problema é que sempre retorna verdadeiro
>
> if [ $answer != "y" -o $answer != "n" ] ; then echo diferente; fi
>
> if [ $answer != "y" ] || [ $answer != "n" ] ; then echo diferente; fi
>
> se eu fizer somente com uma condição, funciona perfeitamente.
>
> alguém pode me dar um help por favor ?
>
> obrigado!
> abs,
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
--
Tiago B. Peczenyj
Linux User #405772
http://about.me/peczenyj