Contenu d'un répertoire

Sawssen -  
 Sawssen -
Bonjour, ce code n'affiche rien je veux savoir ma faute

ls $1 > list
a=0
for i in `echo $list`
do
a= a+ wc -l list
done

6 réponses

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    Que désires-tu faire exactement?
    0
  2. Sawssen
     
    je vais écrire un script qui calcule le nombre d'éléments d'un répertoire

    ls $1 > list
    echo " le nombre d'éléments du répertoire" $1 "est " `wc -l list `
    il m'a affiché le nombre d'éléments du répertoire est 2 list
    don j'ai réussi à compter les éléments du répertoire mais je veux pas que le mot list figure
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,
      mais je veux pas que le mot list figure
      wc -l <list 
      0
  3. Sawssen
     
    merci beaucoup
    j'ai une autre question , maintenant je veux parcourir le fichier list et je compte le nombre des fichiers ordinaires
    j'ai écrit
    a=0
    for i in `echo $list`
    do
    if [ -f $i ]
    then
    a=a+1
    fi
    echo " le nombre des fichiers ordinaires est " $a
    done

    aucune résultat n'est affichée
    j'ai besoin d'aide
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      a=0
      while read i
      do
      if [ -f "${i}" ]
      then
      ((a++))
      fi 
      done < list
      echo "Nombre de fichier : ${a}"
      0
  4. Sawssen
     
    merci ça marche mais j'ai pas compris la boucle while !!
    qunad on écrit done < list c'est que notre boucle parcoure list ??????????
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      qunad on écrit done < list c'est que notre boucle parcoure list ?
      Oui, et qui plus est ligne par ligne sans se soucier s'il y a des espaces, chose que ne fait pas la boucle "for" (du moins sans avoir modifier la variable $IFS) et qui est source d'erreurs ;-(
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Sawssen
     
    bonsoir merci pour votre aide :)
    maintenant , j'ai essayé d'afficher récursivement le contenu d'un répertoire ainsi que ses sous répertoires :)
    j'ai écrit ce code :
    if [ -d $1 ]
    then
    ls $1 > liste
    while read i
    do
    if [ -d "$i" ]
    then
    echo "************" $i "*************"
    echo `ls $i`
    fi
    done < liste
    else
    echo "ce n'est pas un répertoire !! "
    fi
    pouvez vous corriger ce code ?????
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      #! /bin/bash
      #set -xv
      
      if [ -d ${1} ]
      then
         ls ${1} > liste
         while read i
         do
             if [ -d "${1}/${i}" ]
             then
             echo "************ ${i} *************"
             ls ${1}/${i}
             fi
      done < liste
      else
         echo "ce n'est pas un répertoire !! "
      fi

      A la ligne 9 (ainsi qu'à la 12) il faut mettre le chemin complet sans quoi le test ne peut pas aboutir (la variable $i ne contient qu'un nom et sans son chemin exact la condition ne peut être évaluée).

      A la ligne 12, le echo devant la commande ls est inutile.
      0
  7. Sawssen
     
    merci vraiment vous êtes très gentil ;)
    0