Lógica booleana com o test
Dica publicada em Shell Script / Miscelânea
Lógica booleana com o test
Precisei disso outro dia e pode ser muito útil para quem deseja testar mais de uma condição com o test do shell Bash.
Vejam o exemplo do AND:
No caso acima será verdadeiro se zero for igual a zero, dois for diferente de três e quatro diferente de 5.
Agora vamos ver o OR ou OU:
No exemplo acima será falso pois ambas as condições são falsas: dois é diferente de três e um é diferente de zero e o OU requer que pelo menos uma das condições seja verdadeira.
Bom trabalho a todos!
Vejam o exemplo do AND:
if [ 0 = 0 ] & [ 2 != 3 ] & [ 4 != 5 ]; then
echo "Condição AND satisfeita"
else
echo "Não atende condição AND"
fi
echo "Condição AND satisfeita"
else
echo "Não atende condição AND"
fi
No caso acima será verdadeiro se zero for igual a zero, dois for diferente de três e quatro diferente de 5.
Agora vamos ver o OR ou OU:
if [ 2 = 3 ] || [ 1 = 0 ]; then
echo "Atende OU, pelo menos uma das condições é verdadeira"
else
echo "Não atende OU nenhuma das condições e verdadeira"
fi
echo "Atende OU, pelo menos uma das condições é verdadeira"
else
echo "Não atende OU nenhuma das condições e verdadeira"
fi
No exemplo acima será falso pois ambas as condições são falsas: dois é diferente de três e um é diferente de zero e o OU requer que pelo menos uma das condições seja verdadeira.
Bom trabalho a todos!
Sem necessidade de se utilizar vários colchetes:
if [ 0 = 0 -a 2 != 3 -a 4 != 5 ]
then
...
fi
if [ 2 = 3 -o 1 = 0 ]
then
...
fi
OU
if [[ 0 = 0 && 2 != 3 && 4 != 5 ]]
then
...
fi
if [[ 2 = 3 || 1 = 0 ]]
then
...
fi