VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Erreur dans script bash

schizophrenia - Dernière réponse le 9 mars 2009 à 23:28
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
Lire la suite 

Erreur dans script bash »

2 réponses
Réponse
+0
moins plus
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 :
# !/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
jipicy- 9 mars 2009 à 23:28
Il manque aussi un "exit" sans quoi ça ne sert pas à grand chose :
# !/bin/sh
if [ $# -eq 0 ]
then
    echo erreur : verifier le nombre de parametre
    exit 1
fi
Ajouter un commentaire
Ce document intitulé « Erreur dans script bash » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?