从 shell 执行脚本的问题

从 shell 执行脚本的问题

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

答案1

从中^M您可以看到文件 myscript.py 正在使用 windows/dos 样式的换行符(Windows 在行尾使用 CR LF(回车符 + 换行符)。Unix 仅使用 LF - 所以您看到的是^MCR。所以您没有使用/usr/bin/python/usr/bin/python<CR>它并不存在。

您可以删除^M使用dos2unix(执行sudo apt-get install dos2unix安装然后使用dos2unix myscript.py)。

答案2

执行此操作,然后尝试你的 Python 脚本:

$ tr -d '\r' < test.py > newtest.py

删除 Windows 创建的回车符

进一步阅读,使用 tr 删除 Windows 回车符

相关内容