Script shell qui cree des repertoire

shonguiz -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je voudrais creer un script nommé mkdirs qui permet de creer plusieurs repertoire de la manière suivante:

mkdirs nom-generique-du-rep nombre-rep
ex : mkdirs r4 cree les rep r1 r2 r3 r4

merci pour vos réponse les gens.
Configuration: Linux
Firefox 3.0.10

3 réponses

  1. shonguiz
     
    Fidi, je veux que ce soit automatisé par un script, disons qu'on va appeler ce script mkdirs, si tu tapes

    mkdirs rep 3, il devra creer rep 1, rep 2 et rep 3. J'ai fait ce code là

    #!/bin/bash
    if [ `echo $1|grep -v '^[A-z]*$'` ]||[ `echo $2|grep -v '^[0-9]*$'` ]
    then
    echo "le premier argument doit être un cacactere ou une chaine de caractere alors que le deuxième doit etre un entier"
    else
    a=$2
    while [ $a -ne 0 ]
    do
    a=`expr $a - 1`
    mkdir $1$a
    done
    fi

    mais le problème est que le message d'erreurs de la condition if s'affiche toukours peu importe les arguments tapés.
    2
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    if [ `echo $1|grep -v '^[a-z]*$'` ]||[ `echo $2|grep -v '^[0-9]*$'` ]
    Tu as mis un A majuscule au lieu de minuscule dans ton grep, ce qui explique ton erreur.
    Par contre t'as le moyen de faire plus court :

    #!/bin/bash
    echo $(seq $2) | sed "s/\(\S*\)/\1/g" | xargs mkdir
    if [ $? -ne 0 ]; then
    echo "le premier argument doit être un cacactere ou une chaine de caractere alors que le deuxième doit etre un entier"
    fi
    

    A noter que l'erreur peut également venir d'un problème de droits, si ça te gène, tu fais un mixe des deux versions ;-))).
    Cdlt
    2
  3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    T'as juste à utiliser la commande "mkdir".
    Par exemple : mkdir titi toto te créera les répertoires titi et toto dans le répertoire courant.
    Cdlt
    1