Linux(Centos7):syntax error: unexpected end of file
syntax error: unexpected end of file
/bin/bash^M: bad interpreter: No such file or directory
一、问题描述
本地创建项目启动脚本
上传Linux服务器后启动报错
xx.sh: line 25: syntax error: unexpected end of file
或者xx.sh: /bin/bash^M: bad interpreter: No such file or directory
这样的错误主要是由于shell脚本文件是dos格式,即每一行结尾以\r\n来标识,而unix格式的文件行尾则以\n来标识,更改文件格式即可。
二、查看脚本文件格式3种办法
1)、vi h.sh或 vim h.sh打开文件,如果是dos格式,则底部会有提示 [dos]
2)、vi h.sh或 vim h.sh打开文件,执行 :set ff,回车。
3)、cat -A h.sh从显示结果可以判断,dos格式的文件行尾为 ^M$ ,unix格式的文件行尾为 $
由上图可知是unix格式
三、解决方法1
vi h.sh或 vim h.sh打开文件,执行:set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式 。
更改后
四、解决方法2
使用sed命令 sed -i “s/\r//“ filename 或者 sed -i “s/^M//“ filename 直接替换结尾符为unix格式。
推荐 sed -i “s/\r//“ filename ,因为 sed -i “s/^M//“ filename 可能会失效有用请点赞,养成良好习惯!
疑问交流鼓励请留言!
还没有评论,来说两句吧...