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

Posted 葬瞳飘血

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了执行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 文件名检查哪里出现语法错误。

 

以上是关于执行shell脚本报错:syntax error near unexpected token `或syntax error: unexpected end of file的主要内容,如果未能解决你的问题,请参考以下文章

执行shell脚本报错Syntax error: “(“ unexpected

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

linux的shell脚本报错“syntax error near unexpected token `”的解决

shell编程报错:“syntax error near unexpected token `”

shell 报错:syntax error: unexpected end of file

编写简单的shell脚本 - for循环 - 解决报错 Syntax error: Bad for loop variable