转载至: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结束的字符换成空白