Linux执行.sh脚本文件报错:bad interpreter

2019-10-29  本文已影响0人  勿念及时雨

问题

在windows下使用记事本打开deploy.sh文件,编写.sh脚本,保存后拷贝到Linux服务器上,执行后报如下错误。

[root@i-dbb1f0ff shell]# ./deploy.sh
-bash:./deploy.sh:/bin/bash^M:bad interpreter:No such file or directory

原因

.sh脚本在windows系统下编写,因此可能存在不可见的字符。从上面的错误提示来分析,原因应该是脚本文件是DOS格式的,即每一行的行尾都是以\r\n来标识,其ASCII码分别是0x0D,0x0A。

解决方案

要解决这个问题,其实方法也很简单,只需要把文件格式改为UNIX就行了。具体步骤如下:
1.使用vim deploy.sh命令进入编辑模式。
2.快捷键shift+:进入命令模式,然后使用命令set ff查看文件格式,如果输出fileformat=dos说明文件格式是DOS的。
3.使用命令set ff=unix将文件格式由DOS改为UNIX,再次set ff,检查是否修改成功。
4.再次执行.sh脚本,如果能执行成功,说明问题已经解决。

上一篇下一篇

猜你喜欢

热点阅读