web-dev-qa-db-fra.com

Erreur de syntaxe: fin de fichier inattendue - script Bash

J'essaie de créer une application spritz. Tout fonctionnait bien, mais depuis hier, je reçois toujours cette erreur:

./spritz: ligne 176: erreur de syntaxe: fin de fichier inattendue

J'ai vérifié le fichier de script et tout semble parfait. Je suis confus, j'ai enfin une déclaration if et ça a l'air correct! Voici la dernière partie:

#checks if speed is 150
157 if [[ $2 -eq 150 ]];
158 then
159 starttime=$SECONDS
160      FS=$'\n'
161      for j in `grep --color=always -iP '\b[^aeiou\s]*[aeiou][^aeiou\s]*\K[aeiou]' $1`;
162      do
163            #Reads the text file in the centre of the screen
164            echo "                                                    ___________________"
165            echo "                                                             $j";
166            echo "                                                    ___________________"
167            echo "                                                                               Speed 150 wpm"
168            sleep  0.9;
169            clear;
170       done
171 endtime=$(($SECONDS - $starttime))
172            echo "You read $words_read words in $endtime seconds!"
173       exit 8
174 fi

Qu'est-ce qui pourrait provoquer cette erreur?

20
Scott Pearce

Le diagnostic "fin de fichier inattendue" indique que vous disposez d'une construction syntaxique d'ouverture inégalée ou non terminée (if sans O fi, do sans done, accolades ouvrantes sans la fermeture associée, guillemets ouvrants mais non terminés, etc.). Le numéro de ligne pointant vers la fin du script n'est pas utile dans ce cas, au-delà de dire d'inspecter vos constructions syntaxiques; l'erreur peut se trouver n'importe où dans votre code. Vous devez vérifier cela.

29
Janis