Bonjour,
Donc je dois faire un script qui reçoit en paramètre un répertoire et de le parcourir récursivement et de voir si le répertoire donnée en paramètre est un paquet R ou pas.
(la fonction récursive est OK, mais lorsque je veux faire des testes que cela se complique).
Un paquet R est un dossier qui contient les fichiers A et B et doivent être non nulle, un paquet R peut contenir (ou pas) un sous dossier R mais si ce dossier existe alors il ne doit pas être vide.
(le répertoire donné en paramètre ne peut pas être lui même un paquet R et si on trouve un paquet R on ne doit pas vérifié que ce sous dossier possède un paquet R )
Au départ j'ai su stocker tout les dossiers qui ont les fichiers A et B (non nulle) dans un tableau puis je pouvais les afficher, mais lorsque je teste si le dossier R est vide ça se complique.
(j'ai déjà testé si ma commande pour voir si un fichier est vide ou pas elle est bonne mais lorsque j'imbrique le tout çà ne marche pas)
voici mon code :
Aidez-moi please, je sais vraiment pas ce qui cloche,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 #!/bin/bash #------------fonction recursive-------------------- parcour() { for item in $1/* do [ ! -d "$item" ] && continue if checkR "$item" then echo "$item" else parcour "$item" fi done } #-------------------reperer les paquets R---------------------- checkR() { message="false" [ ! -s "$1/A" ] && [ ! -s "$1/B" ] && message="true" if [ -d "$1/R" ] && [ ! $(ls "$1/R" | wc -l) -gt 0 ] then message="false" fi [ $message="true" ] && return 1 || return 0 } #--------------------------------------------------------------- resultat=$(parcour $1) #stock les paquet R dans un tableau read -a tableau <<<$resultat for var in "${tableau[@]}" do echo "${var}" done exit
Je vous remercie
Dean.
Partager