Shell脚本错误:/bin/bash^M: bad inter
2016-07-24 本文已影响61人
Viking_Den
在工作的时候,由于会在Windows下创建了一个shell脚本,然后拷贝到服务器上调试运行的时候,结果出现下面的报错:
![](https://img.haomeiwen.com/i2034141/751682183549a8f0.png)
我们使用cat命令看一下分别在Windows和Linux下创建相同的shell脚本内容:
![](https://img.haomeiwen.com/i2034141/b60b1d1685f980a3.png)
结果发现这两个脚本的内容是一样的,没错。接着使用cat -A 命令显示所有的内容:
![](https://img.haomeiwen.com/i2034141/f4033e806ef16b29.png)
![](https://img.haomeiwen.com/i2034141/020997fb0b5f5aae.png)
我们发现,原来在linux下标准的换行符为$,而在windows下的换行符为^MS。所以我们在使用windows下生成的shell脚本拷贝到linux下执行时出现了不能识别的错误:^M bad interpreter。
所以,解决办法是把windows下的^MS换成linux下的$(当前我的这个简单程序只有这一个差别)
但是这种一般不要我们手动去修改,因为linux一般会有一个dos2unix的转换命令,如果没有可以安装,例如,在ubuntu下,可以使用sudo apt-get install dos2unix安装:
![](https://img.haomeiwen.com/i2034141/7f0c39caecdc87fb.png)
然后,可以使用如下命令直接进行转换了:
![](https://img.haomeiwen.com/i2034141/ad747b6dc014c368.png)
执行成功,完美_-_