If...then elif...then

Résolu/Fermé
dada62160 Messages postés 1022 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 24 mai 2012 - 14 nov. 2009 à 20:30
dada62160 Messages postés 1022 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 24 mai 2012 - 14 nov. 2009 à 22:35
Bonsoir à tous !

Voi:a j'ai un problème qui me gonfle un peu : j'apprends à faire des scripts shell en bash sous linux, mais la commande if...then ne marche pas comme elle devrai : quand je tape if suivi d'une condition et d'une commande, la commande s'execute même si la condition n'est pas remplie...
Merci d'avance
Bonne soirée

8 réponses

BeFaX Messages postés 14245 Date d'inscription mercredi 24 décembre 2008 Statut Contributeur Dernière intervention 6 août 2013 3 822
14 nov. 2009 à 20:31
Non, je te crois pas lol ...
C'est toi qui dois faire erreur.
1
dada62160 Messages postés 1022 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 24 mai 2012 69
14 nov. 2009 à 20:41
EEuh... désolé BeFax, mais je vois pas ton message...
0
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
14 nov. 2009 à 20:57
J'ai mis la réponse de BeFax en vert pour que tu la voies mieux ;-)
Le plus simple est que tu donnes tes lignes de code, car effectivement on a du mal à croire qu'un système d'exploitation aussi éprouvé puisse laisser une erreur aussi grossière perdurer.
Bonne réflexion.
0
dada62160 Messages postés 1022 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 24 mai 2012 69
14 nov. 2009 à 21:21
read $reponse
if [ $reponse="oui" ]
then
echo "Continuons"
elif [ $reponse="non" ]
then
echo "Arrêtons"
fi

et quand je tape "non" ils me met quand même "continuons"...
0
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
14 nov. 2009 à 21:57
Corrige ainsi ton programme:
echo -n "Donner votre réponse ? "
read reponse
if [ "$reponse" = oui ]; then
  echo "Continuons"
elif [ "$reponse" = non ]; then
  echo "Arrêtons"
fi
et tu constateras que ça fonctionne très bien ;-)
Bonne continuation.
0
dada62160 Messages postés 1022 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 24 mai 2012 69 > loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017
14 nov. 2009 à 22:04
Effectivement, ça marche ! Miracle ! Ca fait 5 jeures que je bidouillai et ça marchais pas !
Merci à tous !
Bonne soirée
0
dada62160 Messages postés 1022 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 24 mai 2012 69
14 nov. 2009 à 21:24
j'ai oublié : il y a #!/bin/bash au début, je ne l'ai pas oublié ^^
0

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

Posez votre question
BeFaX Messages postés 14245 Date d'inscription mercredi 24 décembre 2008 Statut Contributeur Dernière intervention 6 août 2013 3 822
14 nov. 2009 à 21:41
Met ELSEIF
0
dada62160 Messages postés 1022 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 24 mai 2012 69
14 nov. 2009 à 21:49
où ça ?
0
dada62160 Messages postés 1022 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 24 mai 2012 69
14 nov. 2009 à 22:31
J'aurai une autre question aussi dans un script ou il faut être en root avec sudo, existe t-il une commande permettant de rester tout le long du script en root ?
Merci
0
dada62160 Messages postés 1022 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 24 mai 2012 69
14 nov. 2009 à 22:35
Désolé, j'ai rien dit, ça marche.
Merci !
0