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

Linux Discussion :

[bash] unexepted end of file


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Points : 50
    Points
    50
    Par défaut [bash] unexepted end of file
    Voilà l'erreur que j'ai quand j'execute ce script
    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
     
    #!/bin/sh
     
    while IFS=, read types typepro name group pass homedir homepro
    do
    if [ "$types" = "[group]" ]
    then
      groupadd $name
    fi
    if [ "$types" = "[user]" ]
    then
      if [ grep -E "^$name:" /etc/passwd > /dev/null ]
      then
        echo user $name existe
      else
        if [ "$typepro" = "o" ]
        then 
          useradd -d $homedir -g $group -m $name
          smbpasswd -a $name -s << EOF
          $pass
          $pass
          EOF
        fi
      fi
    fi
    done < $1
    erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     line 26: syntax error: unexpected end of file
    Merci

  2. #2
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    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
    #!/bin/sh
    
    while IFS=, read types typepro name group pass homedir homepro
    do
    .../...
          useradd -d $homedir -g $group -m $name
          smbpasswd -a $name -s << EOF
          $pass
          $pass
          EOF
        fi
      fi
    fi
    done < $1
    Ça marchera mieux en remplaçant :
    << EOF par <<-EOF
    et, si ce n'est pas le cas, en mettant des tabulations au lieu de caractères "espace" entre le début de ligne et EOF marquant le fin de DATA.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          smbpasswd -a $name -s <<-EOF
          $pass
          $pass
          EOF

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Points : 50
    Points
    50
    Par défaut
    J'ai fait les modifs que tu m'as dit mais ca ne fonctionne pas, meme erreur !

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 739
    Points : 31 068
    Points
    31 068
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par keishah Voir le message
    J'ai fait les modifs que tu m'as dit mais ca ne fonctionne pas, meme erreur !
    Mets la chaîne "EOF" en début de ligne. Tu demandes un marqueur sur la chaîne et non la chaîne Et je pense même qu'il te faut mettre toute ton entrée "smbpasswd" en début de ligne.

    PS: EOF symbolise "End Of File". Or ton entrée smbpasswd n'est pas un fichier mais du texte. Moi je mets généralement "EOT" et pour éviter qu'on trouve par hasard "EOT" dans les entrées et que cela interfère, je mets généralement "_EOT_".

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 16
    Points : 22
    Points
    22
    Par défaut
    Il me semble qu'il ne faut rien mettre entre "<<" et "END".
    En collant les deux mots, je pense que ça devrait fonctionner.

    Bref faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    smbpasswd -a $name -s <<EOF
          $pass
          $pass
          EOF

Discussions similaires

  1. [ORA-03113] end-of-file on communication channel
    Par Mella dans le forum Oracle
    Réponses: 16
    Dernier message: 10/02/2006, 02h18
  2. Shell - erreur unexpected end of file
    Par claralavraie dans le forum Linux
    Réponses: 7
    Dernier message: 12/01/2006, 10h59
  3. Réponses: 14
    Dernier message: 10/11/2005, 18h19
  4. Réponses: 2
    Dernier message: 15/04/2004, 16h44
  5. Erreur unexpected end of file
    Par snoop dans le forum Linux
    Réponses: 6
    Dernier message: 22/03/2004, 11h37

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