IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

[Script bash] condition if Erreur de syntaxe près du symbole inattendu « done »


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2007
    Messages : 93
    Par défaut [Script bash] condition if Erreur de syntaxe près du symbole inattendu « done »
    Bonjour à tous,
    J'ai un problème de script, au niveau de ma boucle de création de partages.
    Lorsque je lance mon script, j'obtiens cette erreur :
    Line 56: Erreur de syntaxe près du symbole inattendu « done »
    Line 56: `done < /listeGroupsUser.txt'
    La ligne correspond à "done < /listeGroupsUser.txt" à l'avant dernière ligne.
    Ce que je ne comprends pas, c'est que je l'utilise une première fois dans mon script sans problème. Le problème viendrai donc de mes conditions if

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    #!/bin/bash
    clear
    echo "========================="
    echo "=====Debut du script====="
    echo ""
    read -p "Nom de l'utilisateur : " user
    echo "Liste des groupes :"
     
    while IFS=: read groupETC deux trois quatre cinq six sept
    do
            echo -e "$groupETC " >> /listeGroups.txt
    done < /etc/group
     
    egrep ^[[:upper:]] /listeGroups.txt
    rm /listeGroups.txt
     
    echo "Quels groupes sont à ajouter (séparer par des ":") ? "
    read groupsUser
    echo $groupsUser >> /groupsUser.txt
    cat /groupsUser.txt | tr -s ":" "\n" >> /listeGroupsUser.txt
    rm /groupsUser.txt
     
    echo "Création Utilisateur et Groups associés..."
    useradd -m $user
     
    while IFS=  read userGroup
    do
            adduser $user $userGroup
    done < /listeGroupsUser.txt
     
    echo "Creation Arborescence..."
     
    mkdir /home/$user/perso
    mkdir /home/$user/partage
     
    while IFS=  read userGroup
    do
    if [ "$userGroup" == "Famille" ]
    then
            mkdir /home/$user/partage/...
    elif [ "$userGroup" == "EPSI" ]
    then
            mkdir /home/$user/partage/...
    elif [ "$userGroup" == "Pornicais" ]
    then
            mkdir /home/$user/partage/...
    elif [ "$userGroup" == "Autres" ]
    then
            mkdir /home/$user/partage/...
    elif [ "$userGroup" == "Amis" ]
    then
            mkdir /home/$user/partage/...
    elif [ "$userGroup" == "All" ]
    then
            mkdir /home/$user/partage/Public
    done < /listeGroupsUser.txt
    rm /listeGroupsUser.txt
    Note : J'ai essayé de rajouter un "fi" a la fin du "elif" ce n'était pas mieux, je ne vois pas d'où cela pourrait venir

    Merci d'avance à vous !

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Citation Envoyé par T3rm1nat0r Voir le message
    Note : J'ai essayé de rajouter un "fi" a la fin du "elif" ce n'était pas mieux, je ne vois pas d'où cela pourrait venir
    Il manque un fi juste avant le dernier done et ce message signale cette erreur.

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 635
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 635
    Par défaut
    Bonjour,

    si tu ne te sers pas des variables deux...sept, tu peux les regrouper sous une seule variable, par exemple IFS=':' read groupETC reste2laLigne.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2007
    Messages : 93
    Par défaut
    J'y crois pas !
    Bien évidemment, j'avais essayé en ajoutant fi avant le done, mais j'avais mis d'autres choses... ca devait gêner... Bref, ca marche maintenant, merci beaucoup !

    Et yes, bien vu, autant diminuer le nombre de variables utilisées, j'avais oublié qu'il mettait le reste dans la dernière variable

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/04/2014, 18h20
  2. Erreur de syntaxe près du symbole inattendu « ( »
    Par kahrah dans le forum Débuter
    Réponses: 6
    Dernier message: 04/02/2013, 16h25
  3. erreur de syntaxe prés du symbole inattendu <<(>>
    Par devfree dans le forum Débuter
    Réponses: 2
    Dernier message: 31/03/2010, 20h48
  4. Réponses: 7
    Dernier message: 15/08/2007, 19h15
  5. [MySQL] Erreur de syntaxe près de ' '', '', à la ligne 1
    Par micka30 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/01/2007, 02h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo