转载至:https://www.cnblogs.com/liangbin/p/4276870.html

 

出现这种情况,通常都是在window下写好的shell脚本,拷贝到linux机器执行 才会出现

原因就是:

windows下每一行的结尾是\n\r,而在linux下文件的结尾是\n

这样window写编辑的shell脚本拷贝到linux下时

每一行的结尾就会多出来一个字符\r

这个\r字符会被显示为^M

所以就会出现错误提示" /bin/bash^M: bad interpreter: No such file or dire",

字面意思就是/bin/bash^M: 坏的解释器: 没有那个文件或目录

 

解决方法:

终端执行

sed -i 's/\r$//' filename  #flename即shell脚本文件名

这个命令会把以\r结束的字符换成空白