Bonjour,

J'ai un srcipt shell, plus précisément bash qui me permet de créer mes utilisateurs samba.
il prend les données saisies dans le fichier eleves.txt pour créer les comptes puis il génére un fichier comptes.txt qui contient les login et password des utilisateurs créés.

Voila mon 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
27
28
29
# !/bin/bash
# SCRIPT creautil.sh
# ================
# Création automatique des comptes d'apres le fichier eleves.txt
# appel : ./creautil.sh [eleves.txt]
# ================

fich=$1 # fichier pointe vers le premier parametre.

if [ -e $1 ] # on vérifie si le fichier entré en paramêtre existe
   then # alors
      while read ligne # Boucle “TanQue” pour parcourir chaque ligne
         do # faire
            pre=$(echo $ligne | cut -d: -f1) # pre reçoit la 1ere partie de la ligne séparée par “ : ”
            nom=$(echo $ligne | cut -d: -f2) # nom reçoit la 2eme partie de la ligne séparée par “ : ”
            groupe=$(echo $ligne | cut -d: -f3) # groupe reçoit la 3eme partie de la ligne séparée par “ : ”
            login=$pre"."$nom
            mdp=$(pwgen 5 1) #on génère un mot de passe aléatoire avec l’outil pwgen (5 étant le nombre de caractères, 1 étant le nb de mot de passe a générer)
            echo $mdp
            echo $login":"$mdp >> comptes.txt # on écrit le login et mot de passe dans comptes.txt
            useradd -d /srv/samba/home/$login -m -s /bin/false -G $groupe $login # création du compte unix : création du /home de l'utilisateur, avec interdiction de se connecter en ligne de
            commande via le "/bin/false", avec ajout du groupadd sur la même ligne de commende via le "-g", le "-s" permet le mode silencieux de la commande
            echo -e "$mdp\n$mdp" | smbpasswd -a -s $login # création compte samba avec affectation du echo dans la commande smbpasswd "\n" permet le retour chariot double de smbpasswd
         done < $fich # iteration pour passer à la ligne suivante
else # sinon

echo "fichier $1 non trouve" # affiche message d'erreur lorsque l'on ne trouve pas le fichier ou se trouve les “prenom:nom:groupe”

fi
Pour info mon script creautil.sh et mon fichier eleves.txt se trouvent dans le même répertoire.

Toutefois, lorsque j'exécute mon script il me retourne ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
srvdebian:~# ./creautil.sh
./creautil.sh: line 28: $fich: ambiguous redirect
Quelqu'un à une idée pour résoudre ce problème ?
Merci