/usr/bin/env cmdline で実行中の python が失敗する #!line

/usr/bin/env cmdline で実行中の python が失敗する #!line

次の「shebang」の最初の行を追加してPythonスクリプトを実行可能にしようとしています。

#!/usr/bin/env python

ただし、ファイルを実行すると、次の結果が表示されます。

$ myscript.py
: No such file or directory

今、この行を自分で試してみてくださいenv

]$ /usr/bin/env python
Python 2.6 (r26:66714, May  5 2010, 14:02:39)
etc. etc.

同じ行がファイル内では失敗しますが、外部では成功するのはなぜですか?

答え1

shebang行のどこかに誤った文字がある可能性があります。挿入した人なのでキャリッジリターンになる可能性が高いです。つまり、あなたの行は改行とキャリッジリターン(またはその逆)で終わります(ODSスタイルの改行)。

dos2unixスクリプトファイルのすべての改行を0x10(UNIXスタイル)にのみ変換してみてください。

関連情報