Script shell erreur non identifié
Résolu
samias
-
samiastennis Messages postés 6 Statut Membre -
samiastennis Messages postés 6 Statut Membre -
Bonjour,
voilà mon script qu'à chaque fois je l'exécute je me bloque .Un message d'erreur s'affichera " Erreur de syntaxe près du symbole inattendu « if »".
Il s'agit d'écrire une commande TOTAL qui donne le nombre de fichiers et de répertoires présents dans le répertoire en cours.
Aidez-moi SVP
merci
voilà mon script:
#!/bin/bash
chemin = ls
nbf=0
nbd=0
for item in $chemin do
if [ ! -f "$item" ]; then
nbf=$[$nbf+1]
elif [ ! -d "$item" ]; then
nbd=$[$nbd+1]
fi
done
echo "nombrede fichier: " $nbf echo "nolmbre de dossier: " $nbd
voilà mon script qu'à chaque fois je l'exécute je me bloque .Un message d'erreur s'affichera " Erreur de syntaxe près du symbole inattendu « if »".
Il s'agit d'écrire une commande TOTAL qui donne le nombre de fichiers et de répertoires présents dans le répertoire en cours.
Aidez-moi SVP
merci
voilà mon script:
#!/bin/bash
chemin = ls
nbf=0
nbd=0
for item in $chemin do
if [ ! -f "$item" ]; then
nbf=$[$nbf+1]
elif [ ! -d "$item" ]; then
nbd=$[$nbd+1]
fi
done
echo "nombrede fichier: " $nbf echo "nolmbre de dossier: " $nbd
2 réponses
-
Salut,
ledo
est mal placé, il manque soit un saut de ligne soit un point-virgule.for var in $array ; do done #ou for var in $array do done
PS : pense à utiliser la balise<code>
(icône <> ) lorsque tu écris tes messages. -
salut,
je vois plusieurs erreurs, certaines peut-être dues à la recopie (?) :chemin=repertoire
pas d'espaces autour du égalfor f in $chemin; do
il manque un;
.for f in $chemin
, ici,$f
ne vaudra que$chemin
: la boucle ne "descendra" dans le répertoirefor f in $chemin/*
.
ceci n'est pas une erreur, mais c'est une forme ancienne:nbf=$[$nbf+1]
, tu pourrais profiter de ce quebash
peut attribuer le type entier à des variables déclarées :declare -i nbf nbd
, puisnbf+=1
.