-
vim et shebang
Bonjour à tous ,
j'ai récupéré des fichiers python crées sous windows que je souhaite retravaillé sous Linux ;
je souhaite les démarrer avec ./script.py alors j'utilise vim puis je rajoute la fameuse ligne : #! /usr/bin/python
Seulement cela ne fonctionne pas et me voilà gratifié du message suivant :
Code:
-bash : ./script.py: /usr/bin/python^M: bad interpreter
Par contre lorsque je pars de zéro en tapant (toujours dans vim) un script avec la même première ligne ,cela fonctionne
Alors je trouve bizarre le caractère : ^M rajouté par bash !?
à quoi correspond ce caractère et comment apparait-t-il ??
-
Les retours à la ligne sont différents sous linux et windows. Il faut convertir.
Code:
sed -i "s/^M//" filename
-
Bonjour,
Ce n'est pas bash qui rajoute les ^M mais windows...
En bref tes fichiers écrit sous windows sont au format dos et non unix.
Donc, au moins 2 possibilités:
-utiliser la commande dos2unix pour transformer le format dos en format unix.
-ou lors de l'édition sous vim, en mode commande:
:set fileformat=unix
Et celui-ci se chargera de la modification (bien sur, ensuite, n'oublie pas d'enregister le fichier ( :w ) ).
-
Beaucoup d'éditeurs sous Windows peuvent gérer ça aussi. Tu n'auras ainsi aucune manip à faire.
-
autrement : j'ouvre vim sur un fichier vide puis je tape la première ligne :
Puis :
Code:
:r nom_du_script.py
Enfin :
ça fonctionne !!