Script shell (liste de repertoires)

Résolu/Fermé
sotognon
Messages postés
36
Date d'inscription
mardi 19 août 2008
Statut
Membre
Dernière intervention
11 juin 2011
- 14 oct. 2008 à 19:05
oupsman
Messages postés
316
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
22 octobre 2008
- 14 oct. 2008 à 23:26
Bonjour,
Quelqu'un pourrait il m'aider a ecrir le script suivant:

Vous devez lister sur la sortie standard l’ensemble des dossiers du répertoire indiqué en argument
au script. Plusieurs arguments peuvent être donné.
Si un des dossier n’existe pas, vous devez afficher "dir : not found." (dir doit être remplacé par
le nom du dossier), et continuer normalement son execution.
Si un des dossier ne peux être lu, vous devez afficher "dir : access denied." (dir doit être remplacé
par le nom du dossier).
Si un des dossier n’en est pas un, vous devez afficher "dir : not a directory." (dir doit être
remplacé par le nom du dossier).
Si un problème a été rencontré durant l’execution de votre script, vous devez retourner 1 à la
fin de celui-ci. Sinon, vous devez retourné 0.
Vous devez utiliser echo, shift, test et ls.

Merci d'avance.

Cordialement.

3 réponses

sotognon
Messages postés
36
Date d'inscription
mardi 19 août 2008
Statut
Membre
Dernière intervention
11 juin 2011
8
14 oct. 2008 à 21:01
Merci a tous,
J'ai pu resoudre mon probleme avec le script suivant.
Cependant, je pense qu'il peut etre corrige et ameliore.


#!/bin/bash

erreur=0

while [ "$1" != "" ]; do

if [ ! -d "$1" ] ; then

echo "$1: not a directory.";

erreur=`expr $erreur + 1`;

else

cd $1;

echo " CONTENU DU REPERTOIRE `basename $1` EST:";

for x in `ls .`; do

if [ -d "$x" ] && [ ! -x "$x" ]; then
echo "$x: access denied.";
fi;

[ -d "$x" ] && [ -x "$x" ] && echo $x;

done;
fi;

shift

done;

if [ "$erreur" -ne "0" ]; then

exit 1;

fi;

Cordialement.
3
oupsman
Messages postés
316
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
22 octobre 2008
10
14 oct. 2008 à 23:26
Salut,

Si ton problème est résolu, n'oublies pas de modifier le statut en "résolu". à +
-1
sotognon
Messages postés
36
Date d'inscription
mardi 19 août 2008
Statut
Membre
Dernière intervention
11 juin 2011
8
14 oct. 2008 à 19:24
Desole; Voici ce que j'ai ecrit:

#!/bin/bash

err-0
while [ "$1" != "" ]; do
if [ ! -d "$1" ]; then
echo "$1: not found or not a directory";
err=`expr $err + 1`;
else
cd $1;
echo " CONTENU DU REPERTOIRE $1 EST:";
for x in `ls -C.`; do
[ -d "$x" ] && echo $x;
done;
fi;
shift
done;
if [ "$err" -ne "0" ]; then
exit 1;
fi;
0
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
14 oct. 2008 à 19:07
Salut,

Montre nous ce que tu as fait.
Ça nous aidera de comprendre ton souci.
-1