Shell : Condition

Résolu
ParMesSoins Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
ParMesSoins Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
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
A voir également:

7 réponses

blux Messages postés 27119 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

je crois qu'il faut se méfier du not égal avec un or... essaye avec un and...
0
ParMesSoins Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   1
 
mais un AND n'est pas du tout la même condition !!!
j'avais essayé avec != à la place ne -ne, même problème ;)
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
je dirais que
(faux ou vrai) et vrai == vrai, donc OUI
0
ParMesSoins Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   1
 
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 ???
0
blux Messages postés 27119 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
essaye avec un &&...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
non, parce que (VRAI ou FAUX) c'est vrai, (VRAI et FAUX) c'est faux
0
ParMesSoins Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   1
 
effectivement, ça marche avec AND ;)
ça dépasse ma logique 8[-)
0
blux Messages postés 27119 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
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 ;-)
0
ParMesSoins Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci ... hic ;)
0