Bash GNU:exercice
medi88
Messages postés
13
Statut
Membre
-
Marco la baraque Messages postés 1030 Statut Contributeur -
Marco la baraque Messages postés 1030 Statut Contributeur -
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
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:
- Bash GNU:exercice
- Gnu octave - Télécharger - Édition & Programmation
- Bingo bash free - Télécharger - Divers Jeux
- Gnu solfege - Télécharger - Création musicale
- Bash addition ✓ - Forum Shell
- [Bash]Impossible de faire une simple addition - Forum Shell
2 réponses
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,
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,