Script shell arborescence
Fermé
vin0
Messages postés
1
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
24 décembre 2009
-
24 déc. 2009 à 19:40
Vin0 - 30 déc. 2009 à 16:10
Vin0 - 30 déc. 2009 à 16:10
Bonjour,
Je suis totalement débutant dans l'utilisation de shell et je cherche à réaliser un script en shell sh.
Sans utiliser la commande "find" ce script doit prendre en paramètre une commande et l’exécuter
dans toutes les parties de l’arborescence, quelle que soit leur profondeur.
Si quelqu'un a une idée.
Merci,
Vin0
Je suis totalement débutant dans l'utilisation de shell et je cherche à réaliser un script en shell sh.
Sans utiliser la commande "find" ce script doit prendre en paramètre une commande et l’exécuter
dans toutes les parties de l’arborescence, quelle que soit leur profondeur.
Si quelqu'un a une idée.
Merci,
Vin0
A voir également:
- Script shell arborescence
- Script vidéo youtube - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
5 réponses
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
25 déc. 2009 à 13:08
25 déc. 2009 à 13:08
Salut,
ça devrait pouvoir ressembler à ça :
ça devrait pouvoir ressembler à ça :
#!/bin/bash if -n "$1"; then echo "Usage : " $0 " command"; echo "Exécute command dans tous les sous-répertoires du dossier courant."; else for i in ./* do if [ -d "$i" ] then $1 $i; fi done fi
dubcek
Messages postés
18784
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 avril 2025
5 630
25 déc. 2009 à 13:37
25 déc. 2009 à 13:37
hello
on peut utiliser du pour obtenir l'arborescence
on peut utiliser du pour obtenir l'arborescence
#!/bin/bash test -z "$1" && { echo usage: $0 commande ; exit 1 ; } HERE=$PWD du | ( while read T D ; do cd "$D" $1 cd $HERE done)
Merci beaucoup pour ces deux réponses!
Ces scripts sont en bash, seraient-ils différents en sh?
Pourriez vous également les commenter svp?
Merci,
Vin0
Ces scripts sont en bash, seraient-ils différents en sh?
Pourriez vous également les commenter svp?
Merci,
Vin0
dubcek
Messages postés
18784
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 avril 2025
5 630
26 déc. 2009 à 08:46
26 déc. 2009 à 08:46
les scripts proposés ici n'ont rien de spécifique bash et fonctionnent avec #!/bin/sh
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
25 déc. 2009 à 19:34
25 déc. 2009 à 19:34
Ça ressemble fort à une question de cours, non ?
Je te laisse te documenter par toi même.... ;-)
Je te laisse te documenter par toi même.... ;-)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
25 déc. 2009 à 20:52
25 déc. 2009 à 20:52
Salut,
Sans utiliser la commande "find" ce script doit prendre en paramètre une commande et l’exécuter dans toutes les parties de l’arborescence, quelle que soit leur profondeur.
L'énoncé du 1er message aurait du te mettre la puce à l'oreille, non ? ;-))
Sans utiliser la commande "find" ce script doit prendre en paramètre une commande et l’exécuter dans toutes les parties de l’arborescence, quelle que soit leur profondeur.
L'énoncé du 1er message aurait du te mettre la puce à l'oreille, non ? ;-))
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
26 déc. 2009 à 15:38
26 déc. 2009 à 15:38
C'a été le cas, mais ça me semble normal de demander de l'aide tant qu'il fait un petit effort de compréhension.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18784
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 avril 2025
5 630
28 déc. 2009 à 09:28
28 déc. 2009 à 09:28
autre méthode, on parcourt l'arborescence avec une fonction récursive
$ cat ~/f1 #!/bin/sh test -z "$1" && { echo usage: $0 commande ; exit 1 ; } CMD="$@" fx() { for F in $(ls -a|egrep -v '^\.$|^\.\.$') do test -d $F -a ! -h $F -a -r $F && { cd $F ; fx $F ; cd .. ; } ; done $CMD } fx $PWD $ cd /tmp $ mkdir -p a/b/c/d $ cd a $ ~/f1 pwd /tmp/a/b/c/d /tmp/a/b/c /tmp/a/b /tmp/a $