Probleme avec un script shell

Résolu
pascal$$ Messages postés 39 Statut Membre -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
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. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  2. pascal$$ Messages postés 39 Statut Membre
     
    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
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      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