Script shell (liste de repertoires)

Résolu
sotognon Messages postés 40 Statut Membre -  
oupsman Messages postés 319 Statut Membre -
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.
Configuration: Solaris
Mozilla 1.9

3 réponses

  1. sotognon Messages postés 40 Statut Membre 8
     
    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
    1. oupsman Messages postés 319 Statut Membre 10
       
      Salut,

      Si ton problème est résolu, n'oublies pas de modifier le statut en "résolu". à +
      -1
  2. sotognon Messages postés 40 Statut Membre 8
     
    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
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

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