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 -
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.
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
-
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 -
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.
-
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 -
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