Shell : Condition

Résolu/Fermé
ParMesSoins Messages postés 29 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 7 janvier 2010 - Modifié par blux le 21/11/2013 à 11:31
ParMesSoins Messages postés 29 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 7 janvier 2010 - 6 janv. 2010 à 16:24
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 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
6 janv. 2010 à 15:43
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 mardi 20 mai 2008 Statut Membre Dernière intervention 7 janvier 2010 1
6 janv. 2010 à 15:44
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
6 janv. 2010 à 15:48
hello
je dirais que
(faux ou vrai) et vrai == vrai, donc OUI
0
ParMesSoins Messages postés 29 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 7 janvier 2010 1
6 janv. 2010 à 15:57
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 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
6 janv. 2010 à 15:59
essaye avec un &&...
0

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

Posez votre question
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
6 janv. 2010 à 15:59
non, parce que (VRAI ou FAUX) c'est vrai, (VRAI et FAUX) c'est faux
0
ParMesSoins Messages postés 29 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 7 janvier 2010 1
6 janv. 2010 à 16:00
effectivement, ça marche avec AND ;)
ça dépasse ma logique 8[-)
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
6 janv. 2010 à 16:10
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 mardi 20 mai 2008 Statut Membre Dernière intervention 7 janvier 2010 1
6 janv. 2010 à 16:24
Merci ... hic ;)
0