Deux conditions si
Je suis en train d'écrire un script qui va lire deux choix, et si les deux d'entre eux seront en "y" j'ai envie de dire "Test!" et si un ou deux d'entre eux ne seront pas "y" j'ai envie de dire "Échec du Test!"
Voici ce que j'ai trouvé:
echo "- Do You want to make a choice ?"
read choice
echo "- Do You want to make a choice1 ?"
read choice1
if [ "$choice" != 'y' ] && [ "$choice1" != 'y' ]; then
echo "Test Done !"
else
echo "Test Failed !"
fi
Mais lorsque je réponds à ces deux questions avec "y" c'est dire que "le Test a Échoué!" au lieu de "Test soit Fait!". Et quand je réponds à ces deux questions avec "n" c'est dire que "le Test de Fait!" ce que j'ai fait de mal ?
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la vérification de la mauvaise condition.
La déclaration ci-dessus est vrai quand
choice!='y'
etchoice1!='y'
, et donc le programme imprime correctement "Test!".Le corrigé du script est
Le programme est en train de faire exactement ce que vous lui avez dit de faire. Vous avez dit "Si le premier choix n'est pas égal à "y", et le second choix n'est pas égal à 'o' then print "Test !" autrement print "Test a Échoué !" -- de sorte que si les deux choix sont pas y aura "Test !" être imprimé.
Vous probablement dire:
J'ai changé
!=
pas égal à==
égal à égal. Maintenant, que si vous répondez "y" à ces deux questions permettra de "Tester Fait !" être imprimé.!=
contre==
. L'OP est évidemment assez nouveau à la programmation afin de simplement dire "Je suis votre logique inversée" avec un minimum d'explication est probablement ne va pas les aider à apprendre.Vous avez obtenu la logique de comparaison en arrière; à partir de votre description que vous avez voulu dire
En fait, je suis surpris de voir que le && construire des ouvrages, mais sur une inspection plus poussée, il devrait probablement. Encore, je voudrais écrire comme
Vous avez votre logique inversée; vous êtes vérification pour != lorsque vous devriez vérifier pour ==. Essayez ceci:
Une autre pensée,
Débordement de charabia. (;
Que faire si vous avez essayé
cette ligne
teste si les deux choix NE sont pas de "y", de sorte que lorsque les deux choix SONT les "y", la déclaration est fausse et votre programme imprime correctement "Échec du Test de"