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

在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

时间: 2024-09-03 17:53:21

bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory_linux shell的相关文章

linux下的bin和/usr/bin目录下的命令有什么不同?

问题描述 linux下的bin和/usr/bin目录下的命令有什么不同? 各位大牛,请问linux下的bin和/usr/bin目录下的命令有什么不同? 另外,我看视频时有说到,bin下的命令可以在单用户模式下执行,那请问是所有bin下的命令都可以吗? 解决方案 /bin是超级用户和一般用户都可以使用的命令:/usr/bin是安装的软件的命令 usr表示的是unix software source,不是user啊... 解决方案二: /bin目录下是共用的程序(一般是可执行的文件),/usr/bi

/usr/local/php/bin/php^M: bad interpreter: No such file or directory

在使用php作为linux上shell脚本运行时出现了以下错误: /usr/local/php/bin/php^M: bad interpreter: No such file or directory 原因是你的文本以DOS文件形式保存,如下图所示 解决办法,使用dos2unix命令转换文档类型: dos2unix test.php centos安装dos2unix命令: yum -y install dos2unix 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也

linux报错/bin/bash^M: bad interpreter: No such file or directory问题

执行shell脚本时提示 /bin/bash^M: bad interpreter: No such file or directory  查看脚本文件是dos格式还是unix格式的几种办法. (1)cat -A filename  从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$. (2)od -t x1 filename 如果看到输出内容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,则是unix格式. (3)vi filename打开文件,执行 :

执行sh脚本:/bin/sh M: bad interpreter: No such file or directory

执行sh脚本错误:/bin/sh^M: bad interpreter: No such file or directory,这是windows下编码不同造成的,在Linux下修复方法如下,记录一下. [nobody@twin14441 cronjob]$ ./stop_tips_new.sh -bash: ./stop_tips_new.sh: /bin/sh^M: bad interpreter: No such file or directory 解决办法:vi该文件 在命令模式下输入 :

linux报错/bin/sh M: bad interpreter: No such file or directory问题

原本今年老蒋就有打算学习Linux脚本方面的内容,于是在之前的各种图书活动中买了不少的书,但是大部分都连塑料封面都还没有拆.今天正好公司没有事情,于是就尝试折腾备份脚本,虽然是有参考网上的一些文档,但是好歹也需要自己摸索一方且修改成较为方便适合我们常规用途的脚本.   我们很多的网友玩Linux脚本修改和撰写的时候都基于Windows系统,所以我们在编辑的脚本文件执行的时候容易出现"/bin/sh^M: bad interpreter: No such file or directory&quo

Shell、Perl、Python、PHP访问 MySQL 数据库代码实例_linux shell

下午写了一个简单的 bash 脚本,用来测试程序,输入一个测试用例文件,输出没有通过测试的用例和结果,然后把结果保存到数据库里.如何在 bash 脚本里直接访问数据库呢?既然在 shell 里可以直接用 mysql 命令操作数据库,那么在 shell script 里也应该可以通过调用 mysql 来操作数据库.比如用下面的 bash shell 脚本查询数据库: Bash 复制代码 代码如下: #!/bin/bash mysql -uvpsee -ppassword test << EOFM

/bin/bash^M: bad interpreter: No such file or dire

    在执行shell脚本时提示这样的错误主要是由于shell脚本文件是dos格式,即每一行结尾以\r\n来标识,而unix格式的文件行尾则以\n来标识.  查看脚本文件是dos格式还是unix格式的几种办法.(1)cat -A filename  从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$.(2)od -t x1 filename 如果看到输出内容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,则是unix格式.(3)vi filename打开文

bash批量修改文件名称的方法小结(增加,去除,修改后缀)_linux shell

一.加后缀 1.问题:同以目录下有海量以日期命名的文件,其中有的有后缀,有的以点结尾,如20020101.,20020102.,--,20020101.td,20020102.td--要求: 把所有以点结尾的加上后缀.ts我的方法: 复制代码 代码如下:   #!/bin/bash  for files in `ls *.`  do        mv $files `echo "$filests" `  done2. 同上mv  $files ${files}ts3. 同上mv  $

Python执行Linux系统命令的4种方法_linux shell

(1) os.system 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 复制代码 代码如下: system(command) -> exit_status Execute the command (a string) in a subshell. 如果再命令行下执行,结果直接打印出来 复制代码 代码如下: >>> os.system('ls') 04101419778.CHM   bash      document    media      py-django