问题
在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脚本,如果能执行成功,说明问题已经解决。
网友评论