shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

duvida com if e operador ||


From: fabiomiguel92
Subject: duvida com if e operador ||
Date: 25 May 2015 10:39:15 -0700

Pessoal, boa tarde.



Gostaria de ajuda quanto ao tópico abaixo:

Estou testando a condição de uma variável utilizando o Operador || (OU) da seguinte forma: 

$date "+%a" # O comando date retornando o valor da Semana. Neste caso, estou considerando a data do Dia sendo segunda feira

Mon


$vdata=`date "+%a"` # A variável  "$vdata" está carregando o valor do comando Date

# Ao testar a variável, com a condição de que Se $vdata é difente de "Mon" ou $vdata é diferente de "Sun", retorna a mensagem "Nao eh dia correto", se não "Eh o dia correto"


Na pagina 197 de Programação Shell Linux, 09º ed, a explicação é: 

"

11 (or ou ou lógico)

De acordo com a "Tabela Verdade", para que um teste tipo <condl > ou

<cond2> seja verdadeiro, é necessário que qualquer uma das condições seja

verdadeira. Assim, se <condl> for verdadeira, <cond2> não será executada,

pois certamente o resultado final será verdadeiro "


Considerando que a data é igual a "Mon", o Shell deveria considerar o primeiro Teste do IF, validando o resultado como Eh o dia correto e encerrando o Teste. Porém não é isto que ocorre. 


Aparentemente o Shell testa as duas condições Juntas e retorna o resultado:

if [ $vdata != "Mon" ] || [ $vdata != "Sun" ]; 

 then 

   echo "Nao eh dia correto"

  else 

   echo "Eh o dia correto"

 fi

Nao eh dia correto



reply via email to

[Prev in Thread] Current Thread [Next in Thread]