IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

liste les repertoires dans tableau


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 312
    Par défaut liste les repertoires dans tableau
    Bonjour à tous,
    J'ai développé ce script qui me permet de ranger les noms des repertoires contenu à l'interieur du repertoire courrant dans un tableau indexé. Hors celui-ci n'a pas l'air de fonctionner puisque l'affichage est toujours vide...

    Pouvez vus m'aider svp

    Merci d'avance
    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
     
    # liste tout les repertoire et les place dans un tableau
    liste_rep ()
    {
    	let compteur=1 # declaration du compteur
    	declare -a liste # declaration de la variable tableau 
    	REP="ls"
    	for FICHIER in REP # Parser le répertoire
    	do
    	if [ -d $FICHIER ] # Si l'occurence est un repertoire
    	then
    		$liste{compteur}=$FICHIER # Alors l'ajouter à la liste
    		compteur ++ # Incrémenter le compteur
    	fi
    	done
     
    	return $liste # Retourner le compteur
    }
     
    result= liste_rep
    echo ${result[*]}

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Essaie avec REP="$(ls)" au lieu de REP="ls".

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 312
    Par défaut
    Citation Envoyé par _Mac_
    Essaie avec REP="$(ls)" au lieu de REP="ls".
    Non ça ne marche pas non plus

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Sinon, essaie avec REP=`ls`.

    Ce que tu peux faire, c'est un echo $REP juste en dessous pour vérifier qu'il récupère bien le contenu du répertoire.

    Tu es avec quel shell ? J'ai des doutes sur le "compteur ++" et "result= liste_rep" (l'espace après le = et j'aurais mis result=`liste_rep` ou result=$(liste_rep)).

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 312
    Par défaut
    Je suis en bourne shell, j'ai modifié le script comme-ci dessous, seulement j'ai une erreur de type : numeric argument réquired. Peut on retourner un tableau avec une fonction.

    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
    liste_rep ()
    {
    	compteur=1 # declaration du compteur
    	declare -a liste # declaration de la variable tableau 
     
    	for FICHIER in ls # Parser le répertoire
    	do
    	if [ -d $FICHIER ] # Si l'occurence est un repertoire
    	then
    		liste[$compteur]=$FICHIER # Alors l'ajouter à la liste
    		compteur=$(($compteur+1)) # Incrémenter le compteur
    	fi
    	done
     
    	return liste # Retourner le compteur
    }

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Je sais pas : je ne connais pas bourn shell Faut pas faire un return $liste ?

  7. #7
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Au passage, dans ta boucle FOR, il faut mettre des backquotes autour de la commande a exécuter!

    Ce qui donne Il les faut pour que le shell interprète ta commande

    ++
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

Discussions similaires

  1. listing des repertoires dans un combobox
    Par thewarior dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/10/2014, 09h48
  2. Cherche Script : lister repertoire dans tableau html
    Par julos08 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 04/07/2008, 01h14
  3. Script qui liste les repertoires donnant des liens sur les fichiers
    Par PsYKrO dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 22
    Dernier message: 27/03/2008, 08h46
  4. Réponses: 4
    Dernier message: 08/09/2006, 13h17
  5. Réponses: 3
    Dernier message: 26/08/2006, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo