Script shell erreur non identifié

Résolu
samias -  
samiastennis Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

2 réponses

Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention   261
 
Salut,
le
do
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.
1
samiastennis Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
merci , ça marche bien maintenant :)
0
Utilisateur anonyme
 
salut,

je vois plusieurs erreurs, certaines peut-être dues à la recopie (?) :
chemin=repertoire
pas d'espaces autour du égal
for f in $chemin; do
il manque un
;
.
for f in $chemin
, ici,
$f
ne vaudra que
$chemin
: la boucle ne "descendra" dans le répertoire
for f in $chemin/*
.

ceci n'est pas une erreur, mais c'est une forme ancienne:
nbf=$[$nbf+1] 
, tu pourrais profiter de ce que
bash
peut attribuer le type entier à des variables déclarées :
declare -i nbf nbd
, puis
nbf+=1
.
1
samiastennis Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
je viens juste de corriger la 1ère erreur ;)
merci beaucoup pour votre aide .
0