[Shell] erreur sur la condition d'un IF

Résolu/Fermé
Shadow_49 Messages postés 11 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 25 août 2009 - 17 juil. 2009 à 10:19
Shadow_49 Messages postés 11 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 25 août 2009 - 17 juil. 2009 à 10:47
Bonjour,
J'ai un script en shell qui pose une question et à laquelle l'utilisateur doit répondre soit par o/n soit par oui/non

Pour vérifier la réponse j'ai fais un if comme ceci :

if [ [ ${rep} = "o" ] || [ ${rep} = "oui" ] ]; then
    blabla
elif [ [ ${rep} = "n" ] || [ ${rep} = "non" ] ]; then
    blabla
else
    blabla
fi


mais il me renvoie ceci :
./monscript.sh: line 231: [: too many arguments
./monscript.sh: line 231: [: too many arguments
./monscript.sh: line 235: [: too many arguments
./monscript.sh: line 235: [: too many arguments


Ce qui correspond à chacune des conditions du if-elif

Quel est le problème ? j'ai plusieurs autres if dans mon script mais c'est le seul qui réclame deux conditions, les autres n'ont qu'une seule condition à vérifier (c'est aussi le seul à me faire ça !)

Merci d'avance

1 réponse

Shadow_49 Messages postés 11 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 25 août 2009 1
17 juil. 2009 à 10:47
C'est bon il suffisait d'enlever les crochets qui entouraient le if et le elif :
if [ ${rep} = "o" ] || [ ${rep} = "oui" ]; then
    blabla
elif [ ${rep} = "n" ] || [ ${rep} = "non" ]; then
    blabla
else
    blabla
fi
1