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

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

在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 文件名检查哪里出现语法错误。

 

posted @ 2017-12-17 13:43  葬瞳飘血  阅读(700)  评论(0编辑  收藏  举报