Выполнение скрипта из задачи оболочки
Lubuntu Raring Ringtail. Я хочу иметь возможность выполнять свои сценарии с ./
Я начинаю свой скрипт на Python с #!/usr/bin/python
и это говорит
bash : ./myscript.py: /usr/bin/python^M: bad interpreter: No such file or directory
Если я использую #!/usr/bin/env python
это дает похожую ошибку:
: No such file or directory
Что я делаю неправильно?
У меня абсолютно установлен Python, и я могу запускать сценарии как обычно с python myscript.py
2 ответа
От ^M
вы можете видеть, что файл myscript.py использует разрывы строк в стиле windows/dos (Windows использует CR LF (возврат каретки + перевод строки) в конце строки. Unix использует только LF - так что вы видите как ^M
это ЧР. Так что вы не используете /usr/bin/python
но /usr/bin/python<CR>
этого не существует.
Вы можете удалить ^M
с помощью dos2unix
(сделать sudo apt-get install dos2unix
установить, а затем использовать dos2unix myscript.py
).
Сделайте это, затем попробуйте ваш скрипт на Python:
$ tr -d '\r' < test.py > newtest.py
Это удаляет возврат каретки, созданный из Windows
Для дальнейшего чтения удалите возврат каретки Windows с tr