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
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
A voir également:
- Script shell qui cree des repertoire
- Script vidéo youtube - Guide
- Cree un compte google - Guide
- Créer un lien pour partager des photos - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Ia qui crée des images - Accueil - Intelligence artificielle
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.
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
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 :
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
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
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
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