Ich versuche, ein Python-Skript ausführbar zu machen, indem ich der ersten Zeile die folgende „Shebang“ hinzufüge:
#!/usr/bin/env python
aber wenn ich die Datei ausführe, erhalte ich:
$ myscript.py
: No such file or directory
Wenn ich die Zeile jetzt env
direkt ausprobiere, funktioniert es:
]$ /usr/bin/env python
Python 2.6 (r26:66714, May 5 2010, 14:02:39)
etc. etc.
Warum schlägt die gleiche Zeile innerhalb der Datei fehl, ist außerhalb aber erfolgreich?
Antwort1
Wahrscheinlich haben Sie irgendwo in Ihrer Shebang-Zeile ein ungültiges Zeichen. Da Sie es eingefügt haben, handelt es sich wahrscheinlich um einen Wagenrücklauf, d. h. Ihre Zeile endet mit einem Zeilenumbruch und einem Wagenrücklauf (oder umgekehrt) – im ODS-Stil des Zeilenumbruchs.
Versuchen Sie, dos2unix
in Ihrer Skriptdatei alle Zeilenumbrüche so umzuwandeln, dass sie nur 0x10
(UNIX-Stil) sind.