Script shell qui cree des repertoire
shonguiz
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
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.
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:
- Script shell qui cree des repertoire
- Classic shell - Télécharger - Personnalisation
- Cree un compte google - Guide
- Script vidéo youtube - Guide
- Créer un lien pour partager des photos - Guide
- Cree gmail - Guide
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.
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.
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 :
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
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