/bin/bash^M: bad interpreter

/bin/bash^M: bad interpreter

问题

windows下保存了shell脚本文件,上传到linux并执行,错误提示:/bin/bash^M: bad interprete

原因

该脚本被转换成Windows下的dos文本格式了,这样的格式每一行的末尾都是以\r\n来标识,它的ASCII码分别是0x0D,0x0A。如果你将这个脚本文件直接放到Linux上执行就会报/bin/bash^M: bad interpreter错误提示。

解决

vim编辑文件

:set ff?

命令检查一下,看看是不是dos字样,如果是dos格式的,继续执行

:set ff=unix

然后执行

:qw