Afficher le nombre des ligne sous un répertoire

ahmed_king29 Messages postés 39 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Merci de m'aider pour compter le nombre des fichiers ( des lignes) qui sous un path quelconque ,
j'ai essayé par cet exemple :

#!/bin/bash

$1=ls /path1 | wc -l

echo $1

9 réponses

  1. aurelazy Messages postés 197 Statut Membre 50
     
    Bonjour Ahmed,

    Tu veux récupérer le résultat de la commande dans une variable ?

    nbligne=`ls <path> | wc -l` 


    Tu entoures ta commande avec des " `` " (altGr + 7)

    ou

    nbligne=$(ls <path> | wc -l)


    Bonne nuit,

    Well, if it looks like a duck, swims like a duck, and quacks like a duck, it's probably a duck.
    0
  2. ahmed_king29 Messages postés 39 Statut Membre
     
    Comment je peux modifier mon script lorsque je change le path chaque fois. c-a-d dans l'exécution du script :

    ./script path
    ./script path 1
    ./script path 2
    ...
    le path est une argument dans l'exécution.

    Merci,
    0
  3. aurelazy Messages postés 197 Statut Membre 50
     
    Les "path" sont aléatoire ou toujours les mêmes ?

    0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    dans le script
    export PATH="$PATH:$1"
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. aurelazy Messages postés 197 Statut Membre 50
     
    Ha ok, en fait le $1 de la commande de dubcek sera le premier argument passé à ta commande.
    Donc $1=path1 dans ta commande: ./script path1

    Bonne nuit,

    Well, if it looks like a duck, swims like a duck, and quacks like a duck, it's probably a duck.
    0
  7. ahmed_king29 Messages postés 39 Statut Membre
     
    Les paths sont toujours les même.

    Merci
    0
  8. aurelazy Messages postés 197 Statut Membre 50
     
    Si as chaque fois tu dois lancer le script avec différents path,
    Tu peux soit créer une liste dans ton script qui va comprendre tous tes "path" et ensuite tu boucles sur cette liste pour récupérer tes informations, ou créer un fichier plat avec tous tes path à l'interieur, ensuite dans ton script tu appels ton fichier et tu récupères tes infos.

    Voila,

    0
    1. ahmed_king29 Messages postés 39 Statut Membre
       
      Merci aurelazy de m'aider pour rédiger le script avec un boucle.
      0
  9. ahmed_king29 Messages postés 39 Statut Membre
     
    J'ai essayé par ce script :

    #!/bin/bash

    PATH=$1

    nblign=`ls $PATH | wc -l`

    echo nbligne

    lorsque je lance l'éxécution je recois :

    ./nombre-ligne.sh path

    ./nombre-ligne.sh: line 7: ls : commande introuvable
    ./nombre-ligne.sh: line 7: wc : commande introuvable
    nbligne

    Merci de m'aider.
    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      il faut ajouter $1, pas remplacer
      export PATH="$PATH:$1"
      0
    2. ahmed_king29 Messages postés 39 Statut Membre
       
      Comme ça ?

      #!/bin/bash


      PATH="$PATH:$1"


      nblign=`ls $PATH | wc -l`


      echo nbligne
      0
    3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      pourquoi : ls $PATH ?
      PATH est une variable: echo $PATH
      tu veux compter le nb. de fichiers dans chaque répertoire dans PATH ?
      nblign=$(ls ${PATH//:/ } | wc -l)
      0
    4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      PATH est une liste de répertoires séparés par :
      voir post # 13
      0
    5. ahmed_king29 Messages postés 39 Statut Membre > dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Merci dubcek pour votre collaboration mais J'ai obtenu le même problème :

      #!/bin/bash

      export PATH="$PATH:$1"

      nbligne=$ (ls ${PATH//:/ } | wc -l)

      echo nbligne

      $ ./nombre-cdr.sh /opt
      ls: impossible d'accéder à /opt/albat/bin: Aucun fichier ou dossier de ce type
      nbligne
      0
  10. ahmed_king29 Messages postés 39 Statut Membre
     
    lorsque je tape :

    ls /opt/albat/bin | wc -l ----> j'obtient 3

    et lorsque j'exécute le script j'obtient :

    $ ./nombre-cdr.sh /opt/albat/bin
    ls: impossible d'accéder à /opt/albat/bin: Aucun fichier ou dossier de ce type
    1552
    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      afficher PATH : echo $PATH
      0