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

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

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

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

windows


linux

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

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

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

install

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

execute

执行成功,完美_-_

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容