Arborescence en baSh

Discutez d'informatique ici !
Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 19:42

Arborescence en baSh

par Rockleader » 18 Juin 2014, 19:14

Bonsoir,


Bon je cherchais à faire un script permettant de parcourir une arborescence de fichier à partir du répertoire courant.

J'avais déjà ouvert un topic pour faire ça en C; mais le sh ça commence à dater maintenant x)


Je sais que si on veut lister, il suffit d'utiliser la commande find.

Donc là l’intérêt de ce script c'est vraiment de pouvoir naviguer dans les dossiers pour faire des traitement une fois qu'on est sur un fichier.

J'ai quelque vague souvenir, il me semble qu'on doit faire une boucle while read; mais je ne saurais plus le mettre en forme.




Donc pour cet exemple disons que je veux parcourir tout les dossiers et afficher leur contenu.


(En fait ça reviendra à faire le travail de la fonction find, mais je veux refaire l'algo par moi même).


Merci pour votre aide ;)
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !



Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 18 Juin 2014, 19:25

hello,

comme n importe quel langage classique on peut pondre la recursive

Code: Tout sélectionner
function listFiles(dirEntry)
 filesOrDirs=list(dirEntrty)
 foreach filesOrDirs as fileOrDir
  if(isFile(fileOrDir))
    echo fileOrDir
  else
    listFiles(fileOrDir)
  endif
 endforeach
endfunction
la vie est une fête :)

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 19:42

par Rockleader » 18 Juin 2014, 20:02

Code: Tout sélectionner
for i in "$1"/*
do
if [ -d $i ]
then
"$0" "$i"
else
#traitement du fichier
fi
done


Est ce que ça marchera là ?

Et si j'avais voulu pour ainsi dire me déplacer avec un cd ça n'aurait pas changer le script ?
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 18 Juin 2014, 20:06

Est ce que ça marchera là ?

testes

Et si j'avais voulu pour ainsi dire me déplacer avec un cd ça n'aurait pas changer le script ?

testes :/
la vie est une fête :)

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 19:42

par Rockleader » 18 Juin 2014, 20:19

fatal_error a écrit:testes


testes :/



Je l'attendais celle là, j'étais sûr que tu allais me répondre ça ;) Je me le serais répondu moi même :p



Non mais c'est juste que j'ai prêté mon linux à un pote, ce qui fait que je ne peux pas tester et que j'ai je dois le dire un peu la flemme d'aller dl VirtualBox et de boot en virtuel x)
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 18 Juin 2014, 21:00

ben
1: code pas en bash
2: installes cygwin
3: cherches un paas qui te fournit un linux online (un peu overkill)
la vie est une fête :)

Iroh
Membre Relatif
Messages: 374
Enregistré le: 14 Oct 2008, 20:24

par Iroh » 19 Juin 2014, 12:43

Tu peux installer babun: https://babun.github.io/

Beau shell qui utilise cygwin, pour windows.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite