Bash GNU:exercice

Fermé
medi88 Messages postés 13 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 17 mai 2011 - 16 nov. 2008 à 13:45
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 - 16 nov. 2008 à 20:20
Bonjour,
j'ai un ptit prob dans un exercice , j'ai fait un prog et je ne sais pas prk il ne marche pas
voici l'ennancé d'exercice :
Données:
Créez une arboréssence de répertoires de six niveaux comme suit:
Rep1: contient: Rep1.1, Rep1.2, Rep1.3, ... Fic1.1, Fic1.2 ...
Rep2: contient: Rep2.1, Rep2.2, Rep2.3, ... Fic2.1, Fic2.2 ...
¨
¨
¨
Rep6: contient: Rep6.1, Rep6.2, Rep6.3, Rep6.4, ... Fic6.1, Fic6.2 ...
Dont certains répertoires sont inaccessibles(comme par exemple ceux en rouge).

Problème:
La récursivité est possible en shell. Ecrire et executez un programme shell nommé « ARBRE_RECU » récursif qui permet de donnez l'arbre des répertoires, à partir d'un répertoire donné en parametre $1, ou du répertoire courant par défaut.
L'accès à un répertoire doit commencer par:
DEBUT DU REPERTOIRE: /home/.... (début de la prochaine recherche)
liste des fichiers du répertoire en cours
FIN DU REPERTOIRE: /home/ .... (fin de la recherche en cours)
Signalez tout accès refusé à un répertoire donné

et voici mon code ::
#bin/bash
if $#!=1 then
echo "erreur"
else
$i=$1
function ARBRE_RECU
{
cd ~/$i
for i in *
do
if test -d $i; then
if test -r $i; then
ARBRE_RECU
else
echo"fichiers inaccessibles"
fi
fi
done
}

et aussi j'ai pas compris comment commencer l'acces aux repertoires
et merci pour votre aide
A voir également:

2 réponses

personne veut répondre alors à koi bon ca sert ce forumk
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
16 nov. 2008 à 20:20
Bonsoir,
Je te rappelle qu'en général sur le forums ce sont des bénévoles qui répondent aux interrogations des gens (comme la tienne). Autrement dit, si tu n'attends que 20minutes avant de t'énerver devant ton écran et avant de critiquer le forum, c'est que tu n'as rien compris.

Je te rappelle qu'on est dimanche, et que la plupart des gens ont sans aucun doute autre chose à faire que de rafraîchir leur page toutes les 10s pour voir si "Hamid" a posté un message.

Pour finir, je ne sais pas résoudre ton exercice (et je n'ai pas envie d'essayer), par contre je te conseille :
- de revoir comment on fait une fonction récursive. En général tu dois avoir une pré-condition, une post-condition, et faire en sorte que ta post-condition converge avant que tu n'aies un stack overflow
- de jeter un oeil du côté de la fonction ls (j'imagine que tu la connais si tu fais du shell...), et notamment du côté des arguments qu'elle peut prendre. Tu pourras alors stocker son résultat dans une variable et faire des cd de ces résultats.

Cordialement,
0