执行shell脚本报错:syntax error near unexpected token `或syntax error: unexpected end of file

时间:2017-12-17 15:01:38   收藏:0   阅读:2562

引起此问题最可能的原因是:

在windows下编写的文件上传到linux执行。

我是在notepad++上编写的代码,之后上传到linux执行,报此错误。仔细检查,语法方面没有错误。上网查了一下,发现是windows和linux的换行不同导致的。

windows中是回车+换行CRLF;linux下是就一个换行LF

CR意思是carriage return,回车,\r,ASCII码为13

LF意思是linefeed,换行,\n,ASCII码为10

在notepad++中可以查看:视图-显示符号-显示行尾符,效果如下:

技术分享图片

要想在linux下运行,需要将其变为UNIX格式文件:编辑-文档格式转换-转为UNIX格式,效果如下:

技术分享图片

之后再上传到linux下运行就没问题了。

 

或者可以使用linux工具将文件转换为UNIX文件:dos2unix文件名

 另外,出现syntax error: unexpected end of file错误,也可能是语法错误引起的。使用sh -n 文件名检查哪里出现语法错误。

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!