Bonjour,

Cela fait quelques temps que je bloque sur un test concernant mon script, j’avoue l'avoir oublié quelques temps mais aujourd’hui, je dois régler le problème.

Mon script permet d'ajouter de nouveaux utilisateurs à notre base OpenLdap.

Dans mon script, je demande à l'utilisateur d'entrer un nom, un prénom et un login. Après la saisie du login, celui-ci est testé afin qu'il n'existe pas déjà dans la base OpenLdap. Pour cela, je récupère dans un fichier temporaire la liste des utilisateurs existants et je compare. Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
read -p "Veuillez indiquer le login du nouvel utilisateur : " login
while [ -z $login ] || grep "$login" /tmp/liste_user_existant.txt > /dev/null
do
          echo "Erreur de saisie : Le login existe déjà dans la base OpenLdap ou le champ est vide"
          read -p "Veuillez indiquer un autre login : " login
done
Ce code fonctionne si j'entre un login identique à un existant déjà dans la base, mais !

Si par exemple, un utilisateur de la base OpenLdap a un login nommé "test1" et que j'entre le login "test" le script retourne une erreur car il me dit que ce login existe déjà (alors que non ! mais dans ma condition GREP, "test" fait parti de "test1"). Je me doute que mon "grep "$login" /tmp/liste_user_existant.txt" pose un problème, mais je ne sais pas par quoi le remplacer pour que mon script fonctionne comme je le voudrais.

Auriez-vous une idée ?
Merci d'avance,
Cdlt,
Malik.