Shell : Condition
Résolu
ParMesSoins
Messages postés
29
Statut
Membre
-
ParMesSoins Messages postés 29 Statut Membre -
ParMesSoins Messages postés 29 Statut Membre -
Bonjour,
je ne comprend pas pourquoi ce qui suit me retourne OUI et pas NON ???
Merci pour votre aide ;)
je ne comprend pas pourquoi ce qui suit me retourne OUI et pas NON ???
Merci pour votre aide ;)
sauvegarde_quotidien="oui"
dateV=6
if ([ $dateV -ne 6 ] || [ $dateV -ne 7 ]) && [ "$sauvegarde_quotidien" = "oui" ]; then
{
echo "OUI"
}
else
{
echo "NON"
}
fi
7 réponses
-
Salut,
je crois qu'il faut se méfier du not égal avec un or... essaye avec un and...
-
mais un AND n'est pas du tout la même condition !!!
j'avais essayé avec != à la place ne -ne, même problème ;) -
hello
je dirais que
(faux ou vrai) et vrai == vrai, donc OUI -
alors là je bug !
pour que = VRAI il faut que tout soit VRAI ... non ?
si il y a un FAUX, la condition n'est pas respectée.
pour que ça soit VRAI ,ne faut-il pas :
(VRAI ou VRAI) et VRAI = VRAI
si il y un FAUX quelque part ça donne FAUX
(VRAI ou FAUX) et VRAI = FAUX
non ??? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
non, parce que (VRAI ou FAUX) c'est vrai, (VRAI et FAUX) c'est faux
-
effectivement, ça marche avec AND ;)
ça dépasse ma logique 8[-)-
N'oublie pas que l'expression entre () sera évaluée de manière logique et non 'par résultat'...
date ne 6 : faux
date ne 7 : vrai
(faux ou vrai) = on ne demande pas si le premier terme est correct et si le deuxième l'est également, mais on se contente de faire une comparaison booléenne et en l'occurrence, vrai ou faux donne vrai
Le OU booléen (OU non exclusif, s'entend) est défini de cette façon :
a OU b est VRAI si et seulement si a est VRAI ou b est VRAI, (si a est vrai et que b est vrai aussi, alors a OU b est vrai)
C'est l'une des premières erreurs qu'on fait en programmation ;-)
-
-