当前位置: 首页 > 编程笔记 >

bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory

冉子石
2023-03-14
本文向大家介绍bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory,包括了bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory的使用技巧和注意事项,需要的朋友参考一下

在windows系统下写的python脚本,在linux下赋予权限chmod +x xxx.py 以后,执行./xxx.py运行提示:bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory

分析:

这是不同系统编码格式引起的:在windows系统中编辑的.sh .py文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。一般是因为windows行结尾和linux行结尾标识不同造成的。

解决:

1)在windows下转换:

利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。

2)linux下直接替换:

sed -i 's/^M//g'  filename (注意^M 在linux 下写法 按^M 是回车换行符,输入方法是按住CTRL+v,松开v,按m)

3)也可在Linux中转换:

首先要确保文件有可执行权限


#sh>chmod a+x filename 


然后修改文件格式

#sh>vi filename 

利用如下命令查看文件格式

:set ff 或 :set fileformat

可以看到如下信息

fileformat=dos 或 fileformat=unix

利用如下命令修改文件格式

:set ff=unix 或 :set fileformat=unix

:wq (存盘退出)

最后再执行文件
#sh>./filename

 类似资料:
  • 在Bash脚本的头中,这两个语句之间有什么区别: >

  • 问题内容: 在Bash脚本的标头中,这两个语句之间有什么区别: 当查阅 手册页时,得到以下定义: 这是什么意思? 问题答案: 运行命令,通过具有寻找不管程序的默认版本是在当前的利益 ENV ironment。 这样,您不必在系统上的特定位置查找它,因为这些路径可能在不同系统上的不同位置。只要它在您的路径中,它就会找到它。 缺点是,如果您希望支持Linux,则将无法传递多个参数(例如,您将无法编写)

  • 我在许多地方看到过,包括本网站上的建议(首选的Bash shebang是什么?),使用而不是。我甚至看到一个有进取心的人建议使用是错误的,这样做会丢失bash功能。 尽管如此,我在一个严格控制的测试环境中使用bash,在这个环境中,循环中的每个驱动器本质上都是单个主驱动器的克隆。我理解可移植性的论点,尽管它不一定适用于我的情况。是否还有其他理由选择而不是替代方案?假设考虑可移植性,是否有理由使用它

  • 问题内容: 我正在尝试编译我的程序,它返回此错误: 在我的makefile文件中,我使用命令并链接到我的库,这是到我的库的另一个目录的符号链接。 是否可以添加选项以使其正常工作? 问题答案: 如果您的图书馆名称是say 并且位于路径上,请说: 然后将其链接到您的程序:

  • 问题内容: 我正在尝试使用Python 2.7安装MySQLdb。我收到的错误如下所示: 显然,它找不到Python 2.7。展望我看到: 该符号是什么意思?谁能建议对此错误采取补救措施? 问题答案: 它找不到Python库,而不是可执行文件。运行以查看Python库的位置,然后将其添加到库路径(例如,如果位于中,则要调用)。 该符号意味着该文件是一个符号链接; 表示它是可执行文件(这些文件由产生

  • 因此,我试图使用make-f Makefile编译一个程序,但我得到了以下错误/usr/bin/ld:not find-lgd 生成文件: 替换(libgd.a libgd.la libgd.so libgd.so.2 libgd.so.2.0.0)后,我收到以下错误: