Syntax error: end of file unexpected (expecting « then »)

🐧 Corriger l’erreur « Syntax error: end of file unexpected (expecting ‘then’) » sous Linux

Si vous êtes tombé sur cet article, c’est probablement parce que vous avez rencontré l’erreur suivante dans un script shell :

Syntax error: end of file unexpected (expecting "then")

Syntax error


📌 Pourquoi cette erreur apparaît ?

Cette erreur survient souvent lorsque vous exécutez un script bash créé ou modifié sous Windows (par exemple avec Notepad++).
Windows et Linux n’utilisent pas les mêmes fins de ligne : Windows enregistre les fichiers avec CRLF alors que Linux attend uniquement LF.
Résultat : le shell ne comprend pas la structure du script et affiche cette erreur.


⚡ Exemple concret

Dans mon cas, le problème est apparu sur un script lancé via crontab.
Rien de grave… mais très pénible à déboguer sans connaître la cause.


✅ La solution : utiliser dos2unix

dos2unix est un utilitaire en ligne de commande qui permet de convertir les fins de ligne d’un fichier texte de format Windows vers format Unix/Linux.

Installation :

sudo apt install dos2unix

Conversion de votre script :

dos2unix monfichier.sh

Une fois la commande exécutée, le fichier est réenregistré avec les bonnes fins de ligne, et votre script peut enfin tourner correctement sans afficher l’erreur.


📖 Plus d’options avec dos2unix

L’outil propose plusieurs arguments pour traiter différents cas d’usage (conversion inverse, gestion d’encodage, etc.).
👉 Vous pouvez consulter la documentation complète ici :
Manpage officielle de dos2unix


🎯 Conclusion

Si vous tombez sur Syntax error: end of file unexpected (expecting "then"), pensez d’abord à vérifier l’encodage et le format de vos fichiers.
Dans la majorité des cas, un simple dos2unix résout le problème immédiatement.

S’abonner
Notification pour
guest

0 Commentaires
Commentaires en ligne
Afficher tous les commentaires