Aujourd'hui, j'ai écrit un script python en utilisant notepad++ sous Windows Après l'avoir transmis au serveur Linux et l'avoir exécuté, le message : -bash: ./logger.py: usr/bin/python^M. : mauvais interprète : aucun fichier ou répertoire de ce type
1. Analyse des causes
Ceci est dû à différents formats d'encodage du système : le fichier logger.py édité dans le système Windows peut avoir des caractères invisibles, donc le message d'exception ci-dessus sera signalé lors de son exécution sous le système Linux. Cela est généralement dû aux différents identifiants de fin de ligne sous Windows et Linux. Sous Windows, le caractère de fin de ligne est « rn », tandis que sous Linux, le caractère de fin de ligne est « n » et ^M est le « r ». 'en ASCII'.
2.Solution
1) Convertir sous Windows :
Utilisez certains éditeurs tels que UltraEdit ou EditPlus et d'autres outils pour convertir d'abord l'encodage du script, puis l'exécuter sous Linux. La méthode de conversion est la suivante (UltraEdit) : Fichier-->Conversions-->DOS->UNIX.
2) Remplacement direct sous Linux :
sed -i 's/^M//g' nom de fichier, ce qui signifie remplacer ^M dans chaque ligne du nom de fichier par / (notez que ^M est écrit sous Linux et ^M est le caractère de retour chariot et de saut de ligne. La méthode de saisie consiste à appuyer et à maintenir CTRL+v, relâcher v, appuyer sur m)
3) Il peut également être converti sous Linux :
Assurez-vous d'abord que le fichier dispose des autorisations exécutables : chmod a+x filename ; puis modifiez le format du fichier : entrez vi filename, puis utilisez la commande set ff (ou set fileformat) pour vérifier le format de fichier, qui est fileformat=dos ou fileformat. =unix, Utilisez les commandes suivantes pour modifier le format du fichier : set ff=unix ou :et fileformat=unix; enfin wq (enregistrer et quitter)
Enfin, exécutez le fichier ./filename
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!