bonsoir,
voilà, je suis nouveau dans le langage shell.
J’ai essayé de faire un petit script simple mais je me retrouve avec 2 erreur qui sont du au “case … in”.
sh addusersftp.sh
: not found.sh: 2: addusersftp.sh:
: not found.sh: 4: addusersftp.sh:
Voila mon script :
[code]#!/bin/sh
Script d’ajout d’un utilisateur avec saisi du nom, du mdp et du groupe
On demande la saisie d’un nom d’utilisateur et du mot de passe (2 fois)
echo -n "Nom d’utilisateur : "
read nom
echo "Mot de passe : "
read pass
echo "Mot de passe (le retour) : "
read pass2
echo "Groupe d’appartenance (siteclient : 1 / sitetech : 2 / centrale : 3 / tous: 4) : "
read groupe
On vérifie que les 2 mots de passe soient identiques
if test $pass = $pass2 ; then
# On vérifie qu’il n’existe pas déjà un autre utilisateur du même nom
if test -d /home/users/$nom ; then
echo "L’utilisateur existe deja"
else
# On crée les dossiers et on fixe les droits
mkdir /home/users/$nom
chown -R root:root /home/users/$nom
chmod -R 755 /home/users/$nom
case $groupe in
1)
useradd $nom --groups siteclient --home /home/users/$nom --password $pass
ln -s /home/sftp/siteclient /home/users/$nom
chown -R $nom:siteclient /home/users/$nom/siteclient
chmod -R 777 /home/users/$nom/siteclient
;;
2)
useradd $nom --groups sitetech --home /home/users/$nom --password $pass
ln -s /home/sftp/sitetech /home/users/$nom
chown -R $nom:sitetech /home/users/$nom/sitetech
chmod -R 777 /home/users/$nom/sitetech
;;
3)
useradd $nom --groups centrale --home /home/users/$nom --password $pass
ln -s /home/sftp/centrale /home/users/$nom
chown -R $nom:centrale /home/users/$nom/centrale
chmod -R 777 /home/users/$nom/centrale
;;
4)
useradd $nom --groups siteclient[,sitetech,centrale] --home /home/users/$nom --password $pass
ln -s /home/sftp/siteclient /home/users/$nom
chown -R $nom:siteclient /home/users/$nom/siteclient
chmod -R 777 /home/users/$nom/siteclient
ln -s /home/sftp/sitetech /home/users/$nom
chown -R $nom:sitetech /home/users/$nom/sitetech
chmod -R 777 /home/users/$nom/sitetech
ln -s /home/sftp/centrale /home/users/$nom
chown -R $nom:centrale /home/users/$nom/centrale
chmod -R 777 /home/users/$nom/centrale
;;
esac
fi
else
echo "Les 2 mots de passe ne sont pas identiques"
fi[/code]
Si je met le case en commentaire alors le script ne donne pas d’erreur.
Je lance le script de la façon suivante :
ou
le script est bien présent dans le dossier où je l’exécute.
Merci d’avance du temps passé à m’aider.
Cd, bigbrownies

Je ne sais pas s’il réalise exactement ce que tu souhaites faire, mais chez moi il fonctionne sans erreur !