Forum Programmation.shell erreur sur une ligne qui n'existe pas

Posté par  .
Étiquettes : aucune
0
30
juin
2004
Bonjour

J'ai une erreur sur un script bash:

./sh_Conversion_gene: line 65: syntax error: unexpected end of file

le problème c'est que la ligne 65 n'existe pas, mon fichier va jusqu'à la ligne 64.

j'ai essayé d'effacer le lignes de fin au cas où il y aurait un caractère parasite, mais rien n'y fait.

Quelqu'un a une idée?

Merci

patrick
  • # Zone non fermée ?

    Posté par  (site web personnel) . Évalué à 4.

    Tu n'aurais pas par hasard dans son script soit une boucle non fermée, soit une zone de texte (<<MACHIN) non fermée ?

    Ce qiu expliquerait que lui cherche la fin de quelque chose et que la fin du fichier arrive avant, et donc il renvoie l'erreur "fin de fichier innatendue"...
  • # question

    Posté par  . Évalué à 3.

    la commande de la ligne 64 ne serait pas imcomplete des fois ? ou necessitant une structure complexe incomplete du style
    if{... et pas de }
    • [^] # Re: question

      Posté par  . Évalué à 1.

      Merci pour vos réponses

      la dernière ligne (64) est:

      echo " RESULTATS DE LA CONVERSION : Fichiers "$FILESAC

      donc je pense que ça devrait s'arrêter là.

      Juste avant j'ai un "for .... do ... done", peut-être est ce qu'il y a un pb dans cette boucle?

      je vais essayer sans la boucle.

      a +
  • # Erreur en fin de programme

    Posté par  . Évalué à 4.

    Le shell attend un token et arrivé en fin de fichier, il ne l'a toujours pas trouvé.
    Voilà pourquoi l'erreur est à la fin...
    Verifie que tout tes guillemets sont fermés, que les if se terminent bien pas de fi, que les for,do se terminent bient pas done....
    • [^] # Re: Erreur en fin de programme

      Posté par  (site web personnel) . Évalué à 4.

      .. en utilisant un éditeur avec coloration syntaxique ça aide bien en général.
    • [^] # Re: Erreur en fin de programme

      Posté par  . Évalué à 1.

      En effet, en supprimant la boucle "for..do" je n'ai plus cette erreur.
      Reste à trouver la cause...

      Merci pour le coup de main
      • [^] # Re: Erreur en fin de programme

        Posté par  . Évalué à 2.

        Extrait de man bash :
        for name [ in word ] ; do list ; done

        Tu n'aurais pas oublié des ; quelque part ?
        Sinon tu peux mettre ta varialbe entre les ' " ' de ton echo.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.