shell脚本“syntax error:unexpected end of file”解决方案

转载 2012年08月10日 21:57:54

From: http://renyongjie668.blog.163.com/blog/static/1600531201172803244846/

2011-08-28 12:53:18|  分类: 编程技术 |  标签:shell  linux  学习笔记  编程   |字号 订阅

今天在写Shell时,运行时出现了这样的错误。
git-sync-tree.sh_temp: line 111: syntax error: unexpected end of file

网上Google了一下,网上都是说从windows下脚本传到Linux上可能会出现这样的问题,是因为Windows和Linux下的行末结束符是不一样的,曾经写过一篇博客:回车与换行的区别    当然,我今天遇到的不是这种情况导致的。

1. 如果确实是这种情况,在windows下写好了Shell 但是在linux下用:
sh -n [filesName]  检查语法总是出一个错误 syntax error:unexpected end of file
原因如下:
dos文件传输到unix系统时,会在每行的结尾多一个^M,vi的时候,当你用如下命令:
vi dos.txt
:set fileformat=unix
:w
就会看到这些存在于每行结尾的^M符号,这个就是产生
syntax error:unexpected end of file的原因
解决方案:
在vi下把这些^M都删除后即可。
也可以使用Linux下的工具:dos2unix也可轻松将一个windows下的文本文件转化为Unix兼容的格式。

2.我遇到的不是这样由于windows和Linux相互拷贝文件而导致的。这个是语法错误嘛,由于我这个shell脚本有点大,看了一阵子也没发现是那句话语法错误了,所以不得不用二分法来查找原因,不断注释一些代码,然后用sh -n test.sh来做语法检查,直到最后找到那一段或者哪一行代码引起的错误。我发现是下面这行代码引起的,你能看出其中的问题吗?^_^
[ -d /home/repo/${SPPATH} ] || { mkdir -p /home/repo/${SPPATH}; cd /home/repo/${SPPATH}; git init >> $GITLOG 2>&1 }
嗯,其实我用花括号{}是想把几个命令组合起来在当前shell中执行,然后我犯了一个语法错误,在最后的一个命令后没有加分号(;)。将这行改为如下即可(添加一个最后的分号):
[ -d /home/repo/${SPPATH} ] || { mkdir -p /home/repo/${SPPATH}; cd /home/repo/${SPPATH}; git init >> $GITLOG 2>&1; }
关于当前shell中执行一组命令

SHELL脚本“SYNTAX ERROR:UNEXPECTED END OF FILE”解决方案

今天,自己在写一个一键安装http服务的脚本时,使用if语句编写,用bash -x 命令你给调试,都报错“SYNTAX ERROR:UNEXPECTED END OF FILE”,怎么改动都会报错,通...
  • Joah_li
  • Joah_li
  • 2017年08月05日 15:07
  • 694

解决shell错误:syntax error: unexpected end of file

很久没有用bash的shell来编写shell复杂脚本了,今天在combo-ew的项目中,在各项测试基本上都通过之后,试图编写一个脚本,用来将tftp服务器上的驱动、应用程序和配置文件下载到combo...
  • David_xtd
  • David_xtd
  • 2012年05月17日 18:46
  • 44480

Linux下面运行shell脚本出现unexpected end of file错误

在Linux下运行shell脚本,报错 stop.sh: line 12: syntax error: unexpected end of file 使用vim打开脚本,执行命令: ...
  • daydayupzzc
  • daydayupzzc
  • 2016年01月28日 16:00
  • 9625

在执行shell脚本时,出现“syntax error : unexpected end of file"错误的解决方法

首先,这个问题很可能是由于从其他系统编写的shell脚本在Linux下运行所造成的。 如果是这个问题,那么就进行如下操作: 1.编辑文件    #vim filename(文件名) 2.进入末行模...
  • perter_liao
  • perter_liao
  • 2017年08月06日 11:07
  • 395

syntax error: unexpected end of file解决方法

在windows环境下编辑的脚本通过Xftp上传到linux系统执行的时候会提示syntax error: unexpected end of file,脚本并没有错误。原因是:在Windows环境下...
  • lzhj2g
  • lzhj2g
  • 2015年03月23日 22:35
  • 7657

linux下执行sh出现异常"syntax error: unexpected end of file"

昨天天在windows系统上用notpad++编写linux shell脚本,当传送到linux上执行时一直报错说“syntax error: unexpected end of file”,然后我同...
  • pml18710973036
  • pml18710973036
  • 2017年03月30日 09:11
  • 4068

shell错误一例 syntax error: unexpected end of file

昨天写个脚本,用shell读取文本文件,并且在循环中使用读取的信息。 循环很正常,获取,展示也很正常,只是在加上mysql xxxx (好几行)的时候,报错“syntax error: unexpe...
  • edwzhang
  • edwzhang
  • 2013年04月23日 10:01
  • 1453

PHP关于syntax error语法错误的问题(Parse error: syntax error, unexpected end of file in xxxxxxxx)

在php程序出现类似 Parse error: syntax error, unexpected end of file in xxxxxxxx on line xx 的错误。 如果发现php的语法...
  • u014175572
  • u014175572
  • 2016年10月12日 17:16
  • 2293

Shell中EOF出现syntax error: unexpected end of file

如下一段Linux Shell中运行结果出现syntax error: unexpected end of file if [ "$v_inst" = 0 ];then         echo "D...
  • vindak
  • vindak
  • 2014年01月12日 20:59
  • 2678

<?php}?>格式导致错误 Parse error: syntax error, unexpected end of file in *.php on line 374

打开一个别人写的模板php 与 html混写php文件时,发现提示此问题.看了好大一会,没搞明白怎么回事.以为是后面没有换行符问题.加了还是一样提示.再看一下代码,好像睁着眼睛还是看不出来是什么问题....
  • qidizi
  • qidizi
  • 2013年03月28日 16:50
  • 3771
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shell脚本“syntax error:unexpected end of file”解决方案
举报原因:
原因补充:

(最多只允许输入30个字)