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:
#!/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 rien

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
Bonjour,

il manque un "then" à la suite de ton premier "if", ligne 13.
je teste, et je signale résolu de suite... Désolé