- Modifié
Bonjour, je viens de saisir un petit script, car je vais régulièrement récupérer des données sur un serveur avec curl. J'ai un message d'erreur pour que je ne comprends pas sur un de mes if:
J'ai fait un tour par google pour voir de quoi il en pouvait retourner, 2 résultats, aucun ayant un rapport..., j'ai essayé en virant les tabulations après les avoir remplacées par des espaces.
Je viens de tester une version "simplifiée" sans utiliser aucun if, et tout passe. Si j'enlève le else et sa suite, l'erreur est reporté sur le fi dans les mêmes termes...
Merci
#!/bin/bash
#
## kurl
## Script ayant pour but de récupérer les txt de log de mon serveur
##
## Syntaxe kurl nb_max dossier_1 [dossier_2 [dossier_3 ...]]
##
debutaddr='http://url_visee/'
## debutaddr contient l'addresse de base du serveur.
if [ $# -ge 2 ]
## Si il y a bien plus de 2 paramètres
nbmax=$1
## le premier est le nombre de fichiers
if [ $nbmax -lt 10 ]
then
finaddr="/full/00[1-$nbmax].txt"
elif [ $nbmax -lt 100 ]
then
finaddr="/full/0[01-$nbmax].txt"
else
finaddr="/full/[001-$nbmax].txt"
fi
shift
## On construit la partie requête de l'addresse
until [ -z $1 ]
do
mkdir "$1"
cd "$1"
curl -C - -O $debutaddr$1$finaddr
cd ..
shift
done
## Et tant qu'il y a des paramètres, on boucle
else echo "Syntaxe : $0 nbmax dossier_1 [dossier_2[dossier_3...]]"
fi
Et l'erreur que j'obtiens est ./kurl: ligne 43: Erreur de syntaxe près du symbole inattendu "else"
./kurl: ligne 43: `else'
Bien entendu, alors qu'il y a plus de 2 paramètres, il ne fait rienJ'ai fait un tour par google pour voir de quoi il en pouvait retourner, 2 résultats, aucun ayant un rapport..., j'ai essayé en virant les tabulations après les avoir remplacées par des espaces.
Je viens de tester une version "simplifiée" sans utiliser aucun if, et tout passe. Si j'enlève le else et sa suite, l'erreur est reporté sur le fi dans les mêmes termes...
Merci