Linux Shell脚本syntax error: unexpected end of file原因及解决

2024-04-19 0 160
目录
  • 背景
  • 原因
  • 解决
  • 总结

脚本调试老不好,多半是要废了……

背景

项目需要部署新的后台服务,于是开始编写shell部署脚本,然后把写好的脚本放到服务器上,发现不能执行一直报错。

Linux Shell脚本syntax error: unexpected end of file原因及解决

但是当我vim查看脚本,并没有第51行,反复执行总是提示错误,内心是拒绝的。

原因

最后发现我的脚本是在window环境下编写的,然后传到linux服务器上的,这时候问题来了,doc下的文本内容格式和unix下的格式有所不同,比如dos文件传输到unix系统时,会在每行的结尾多一个^M结束符。

(我的就是这个原因)

解决

vim serverDeploy.sh
:set fileformat=unix
:wq

或者

dos2unix命令将dos文件转换为unix格式(dos2unix需要安装:yum -y install dos2unix)

dos2unix serverDeploy.sh

重新执行脚本就行可以了

sh -x serverDeploy.sh

建议:

1.最好在linux下编写shell脚本,如果喜欢window下的ide,记得上传脚本到服务器时,记得修改脚本的格式,和执行权限;

2.可以使用 sh -n serverDeploy.sh 命令来检查脚本的语法;

3.注意shell的中的变量引用,如:

[ -z $VAR ]

字符串变量在使用时请养成加双引号的习惯 "$VAR",这样无论是字符串为空或是字符串中含有空格,都不会有任何问题。

改为:

if [ -z \”$PASODSPATH\” ]; then

或者:

if [ -z \”$PASODSPATH\” ]
then

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持悠久资源网。

您可能感兴趣的文章:

  • 探究正常运行的shell脚本为啥有时会报错
  • shell脚本自动检测网络掉线和自动重连
  • Linux shell脚本编程if语句的使用方法(条件判断)

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 linux shell Linux Shell脚本syntax error: unexpected end of file原因及解决 https://www.u-9.cn/jiaoben/linuxshell/187864.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务