Probleme avec un script shell

Résolu
Bonjour,
Je débute en shell et j' aimerais écrire un programme qui compte le nombre d éléments du répertoire local,
j écris donc:

#!/bin/bash
for fichier in $PWD
x=0
do
if [ -e "$fichier" ]
then x=$x+1
done
echo $x

et a l execution j obtiens:
./fichier.sh:line 3:syntax error near unexpected token '$x '=0\r' '
./fichier.sh:line 3:'x=0

Pouvez vous m'indiquer d ou vient l erreur , c rageant quand meme surtout pour un bout de code aussi peti!Merci d avance.
Configuration: Windows XP
Firefox 2.0.0.10

4 réponses

  1. Contributeur
    Salut
    Tu veux compter le nombre de fichiers dans le répertoire ?

    Tu peux faire beaucoup plus rapide : ls $pwd | wc -l
    Sinon voici ton code corrigé

    #!/bin/bash
    x=0
    for fichier in $PWD
    do
    if [ -f $fichier ]
    then x=$(($x+1))
    done
    echo $x

    Cdt
    0
    1. Merci pour la réponse.Logiquement ça doit marcher mais quand je lance le script j obtiens un message d erreur du meme style.A mon avis le souci ne vient pas des scripts.
      0
      1. Modérateur
        Salut,

        tu as oublie fi et il faut utliser $(ls $PWD) puisque for a besoin d'une liste
        #!/bin/bash
        x=0
        for fichier in $(ls $PWD)
         do
          if [ -e $fichier ]
          then
            x=$(($x+1))
          fi
         done
        echo $x
        
        0
        1. Contributeur
          Oups, petite faute de ma part, essaie :

          #!/bin/bash
          x=0
          for fichier in $PWD/*
          do
          echo $fichier
          if [ -e $fichier ]
          then x=$(($x+1))
          fi
          done
          echo $x

          Mais pourquoi tu n'aimes pas la commande : ls $PWD | wc -l ?

          Cdt
          0
          1. Modérateur
            Salut,

            Mais pourquoi tu n'aimes pas la commande : ls $PWD | wc -l ?

            Peut être qu'il vaut s'habituer avec les script shell ;-)
            Je débute en shell
            0