Script bash

Résolu
Bonjour,
Apres execution de mon script bash j'ai un message d'erreur
message d'erreur tel que:
"<<newuser.sh: line 7: syntax error near unexpected token "else">>

mon script est le suivant:

#!/bin/bash
echo "creation de compte utilisateur"
echo "entrer le nom du compte"
read nom
if [ -z $nom ] then
echo "entrer un nom de compte"
else
useradd --gid "mail" --create-home --comment "$nom" --password 123456
fi

if [ $? -ne ] then
echo "ce nom $nom est deja utilisé"
exit
fi
--------------------------------------------------------------------------------------------------

SVP aidez moi a ressoudre ce probleme pour que mon script fonctionne.
le fichier s'appelle "newuser.sh"
et j'utilise RED HAT ENTERPRISE LINUX ES 3
Configuration: red hat enterprise linux ES 3

4 réponses

  1. Modérateur
    Salut,

    Ou tu mets l'instruction "then" à la ligne :
    if [ -z $nom ]
    then ...
    ou tu mets un point virgule (;) pour séparer les deux instructions :
    if [ -z $nom ] ; then 
    ...
    ;-))
    1. Bonjour,
      ok merci votre aide m'a été benefique.
      mais j'ai un autre probleme avec le script ci-dessous.
      il sert a créer un compte utilisateur. Quand je l'execute il fonctionne et le compte est crée mai je n'arrive pas a me loguer avec ce compte utilisateur. il met " login incorrect ou mot de passe incorrect"

      #!/bin/bash
      echo "creation de compte utilisateur: entrer nom de compte"
      read pseudo
      echo "entrer le mot de passe"
      read mdp
      useradd $pseudo
      usermod -g serveur $pseudo
      usermod -p $mdp $pseudo
      echo "utilisateur créé"

      -------------------------fin----------------------------

      je n'arrive pas a me loguer avec le compte utilisateur créé
      SVP aidez moi a resoudre ce probleme
      1. Contributeur
        Serait-ce parce que usermod attend le mot de passe crypté ?
        man usermod
        -p, --password PASSWORD
        The encrypted password, as returned by crypt(3).
        1. Ok frere merci pour ton aide mon script fonctionne parfaitement
          voici le script

          #!/bin/bash
          echo "creation de compte utilisateur"
          echo "entrer un nom"
          read pseudo
          echo "entrer un mot de passe"
          read mdp
          useradd -G groupe $pseudo
          echo "$mdp|(passwd --stdin $pseudo)
          echo "utilisateur créé"