Erreur dans script bash
schizophrenia
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,
svp trouver avec moi la faute dans ce script
# !/bin/sh
if [ $# -eq 0 ]
then
echo erreur : verifier le nombre de parametre
fi
for i in $i
do
if [ -d $i ]
then
la liste e sous repertoire de $i est
total=0
cd $i
for j in *
do
if [ -d $i ]
then
echo $i
total=`expr $total + 1`
fi
done
cd $DIR
echo "le nombre de sous_repertoire est $total"
else
echo $i n\'est pas un repertoire
d
svp trouver avec moi la faute dans ce script
# !/bin/sh
if [ $# -eq 0 ]
then
echo erreur : verifier le nombre de parametre
fi
for i in $i
do
if [ -d $i ]
then
la liste e sous repertoire de $i est
total=0
cd $i
for j in *
do
if [ -d $i ]
then
echo $i
total=`expr $total + 1`
fi
done
cd $DIR
echo "le nombre de sous_repertoire est $total"
else
echo $i n\'est pas un repertoire
d
A voir également:
- Erreur dans script bash
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Bingo bash free - Télécharger - Divers Jeux
- Erreur 0x80070643 - Accueil - Windows
- Iptv erreur de lecture - Forum TV & Vidéo
1 réponse
Commence par indenter ton code, tu verras que ton else tombe à l'intérieur du 2e for, que le 2e if n'est pas fermé, et que le deuxième for n'est pas fermé (à moins que le d de la fin soit un done qui a souffert). En gras ci-dessous ce qui ne va pas :
Bon ça c'est pour la syntaxe, mais sinon ta première boucle ne veut rien dire, elle fait parcourir à la variable i la suite $i qui est une chaîne vide, donc il ne peut rien se passer. Je te rappelle qu'une boucle for doit parcourir un ensemble de valeurs séparées d'un espace.
Bonne chance
# !/bin/sh
if [ $# -eq 0 ]
then
echo erreur : verifier le nombre de parametre
fi
for i in $i
do
if [ -d $i ]
then
la liste e sous repertoire de $i est
total=0
cd $i
for j in *
do
if [ -d $i ]
then
echo $i
total=`expr $total + 1`
fi
done
cd $DIR
echo "le nombre de sous_repertoire est $total"
else
echo $i n\'est pas un repertoire
d
Bon ça c'est pour la syntaxe, mais sinon ta première boucle ne veut rien dire, elle fait parcourir à la variable i la suite $i qui est une chaîne vide, donc il ne peut rien se passer. Je te rappelle qu'une boucle for doit parcourir un ensemble de valeurs séparées d'un espace.
Bonne chance
# !/bin/sh if [ $# -eq 0 ] then echo erreur : verifier le nombre de parametre exit 1 fi