Shell脚本错误:/bin/bash^M: bad interpreter: No such file or directory

在工作的时候,由于会在Windows下创建了一个shell脚本,然后拷贝到服务器上调试运行的时候,结果出现下面的报错:

我们使用cat命令看一下分别在Windows和Linux下创建相同的shell脚本内容:

Shell脚本错误:/bin/bash^M: bad interpreter: No such file or directory_第1张图片

结果发现这两个脚本的内容是一样的,没错。接着使用cat -A 命令显示所有的内容:

Shell脚本错误:/bin/bash^M: bad interpreter: No such file or directory_第2张图片
windows


Shell脚本错误:/bin/bash^M: bad interpreter: No such file or directory_第3张图片
linux

我们发现,原来在linux下标准的换行符为$,而在windows下的换行符为^MS。所以我们在使用windows下生成的shell脚本拷贝到linux下执行时出现了不能识别的错误:^M bad interpreter。

所以,解决办法是把windows下的^MS换成linux下的$(当前我的这个简单程序只有这一个差别)

但是这种一般不要我们手动去修改,因为linux一般会有一个dos2unix的转换命令,如果没有可以安装,例如,在ubuntu下,可以使用sudo apt-get install dos2unix安装:

Shell脚本错误:/bin/bash^M: bad interpreter: No such file or directory_第4张图片
install

然后,可以使用如下命令直接进行转换了:

Shell脚本错误:/bin/bash^M: bad interpreter: No such file or directory_第5张图片
execute

执行成功,完美_-_

你可能感兴趣的:(Shell脚本错误:/bin/bash^M: bad interpreter: No such file or directory)