Probleme avec script de gestion des users

Résolu
Salut tout le monde, je doit rendre un devoir en bash unix : creer un fichier texte avec ligne : [nom prenom login] des users puis creer un script prenant en parametre : le nom du fichier, le repertoire des repertoires principaux des utilisateurs, le groupe des users, le mot de passe crypté.
Le script doit: verifier si le groupe existe et le creer si necessaire, creer les compte utilisateurs.
ce que j ai fait : verifier le nombre de parametre, demander au gars si il est d accord avec ce qui va etre fait de ses parametre, creer le groupe.

Probleme: pour creer les utilisateurs (useradd) il faut que je fasse une boucle (for?) et que j'aille chercher dans les lignes du fichier les noms des utilisateurs ....
nbligne= wc -l $1
i=0
testi= [ i -ne nbligne ]
while $testi
do
useradd !!!!!!!!!!! QUOIQUEJEFAIS !!!!!!!!!!!!!!!!!!!
i++
done

Je vous remercie d avance de bien vouloir me filer un coup de main
.

6 réponses

  1. Modérateur
    Un peu de lecture pour les tests et les bouclesen shell :
    http://www.c-sait.net/cours/scripts.php

    Les fonctions qui vont te servir :
    grep
    xargs
    useradd
    addgroup
    cut

    Exemple : supposons que tu aies le fichier plop.txt contenant :
    plop1
    plop2
    plop3

    ou plop1...plop3 correspondent à 3 noms d'utilisateurs :
    cat plop.txt | xargs useradd

    Il faut que tu comprennes les "pipes" (si j'ose dire) et la fonction xargs,et tu verras que c'est facile. Un autre exemple : compter le nombre de ligne de chaque fichier se termnant par pp, à partir de la position courante :
    find * | grep "pp$" | xargs wc -l

    Le "pipe" correspond à l'opérateur "rond" en math (composition de fonction), et xargs consiste à faire une sorte de boucle for pour chaque ligne du flux de texte émis devant le '|'.

    Bonne chance
    0
    1. salut mamiemando

      je tourne sous windows pro et je n'est pas le moyen de tester mes scripts
      peut tu me dire s'il est possible de telecharger un programme me permettant de faire ces test

      je n'ai pas compris la commande xargs
      j'ai été voir sur le site http://www.c-sait.net/cours/scripts.php
      mais le site est assez peu explicatif / general
      je voudrais des exemples de cas xargs

      je te remercie de toute l'aide que tu pourrais m'apporter
      0
      1. Modérateur
        Salut,

        l'équivalent de find * | grep "pp$" | xargs wc -l

        peut être
        find /repertoire -name '*pp' -exec wc -l {} \;
        lami20j
        0
        1. Modérateur
          L'idée c'était de lui montrer les "pipes" si j'ose dire, car dans son cas c'est ce qu'il devra utiliser. Pour tester tes scripts, installe cygwin ou connecte toi à un serveur linux avec putty. Tu peux aussi utiliser un liveCD de knoppix et booter sur ce CD.

          Pour les xargs je t'ai déjà donné deux exemples ! Si tu en veux d'autre, un petit coup de google et tu devrais trouver.

          Bonne chance
          0
          1. Modérateur
            Salut,

            L'idée c'était de lui montrer les "pipes" si j'ose dire,

            Oui tu peux oser :-) et moi je n'ai rien dit.

            lami20j
            0
        2. Modérateur
          Salut tout le monde,

          Si l'on tient compte de ce qu'a dit "nulenbash" dans son 1er post, je cite :"creer un fichier texte avec ligne : [nom prenom login] des users"; perso je verrai davantage un truc du genre (attention ceci n'est qu'un exemple sensé montrer comment parser un fichier dans une boucle) :
           while read ligne ; do echo "$ligne" | cut -d: -f 3 ; done < fich.txt
          ou "fich.txt" contiendrait les lignes suivantes :
          nom1:prenom1:login1
          nom2:prenom2:login2
          nom3:prenom3:login3
          nom4:prenom4:login4
          Bien sur à adapter en fonction des besoins, nottament en traitant chaque ligne comme l'a suggéré "mamiemando" avec "xargs".

          ;-))
          0
          1. salut a tous
            j ai toujours pas tester les commandes
            j'ai essayez d'allez sur cygwin ou j'ai downloader le setup.exe et sa version nouvelle (maitenant) mais chaque fois ca ne fait rien quand je le lance en connexion directe su une url mirror.circ.fr ou cigwin.circ.fr et mir.zyrianes.net (les mirror de france) mais : erreur ligne 4841 do you have last setup

            j'ai downloder putty mais probleme il veut pas connecter

            je download knoppix mais yen a encore pour 1 heure

            je vous remercie tous de vos interventions

            ps : question subsidiaire : mon prof me demande aussi :"utiliser awk pout creer un script temporaire qui contient les commandes de creation"

            quelqu'un peut il me traduire en langage courant "script temporaire..."

            A+
            0