Script shell qui cree des repertoire

Fermé
shonguiz - 1 juin 2009 à 21:36
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 1 juin 2009 à 22:46
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.
A voir également:

3 réponses

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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
1 juin 2009 à 22:46
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
1 juin 2009 à 22:01
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