欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

shell脚本报错syntax error: unexpected end of file

程序员文章站 2022-05-30 16:42:18
...

shell脚本报错syntax error: unexpected end of file

问题产生过程:

我在windows新建了一个shell脚本,然后通过git bash命令窗口执行,没有问题
于是我传到linux服务器上,想运行结果提示错误syntax error: unexpected end of file

排查原因:

文本编辑是在windows下通过记事本或其它编辑器编写的,并且运行在cygwin等模拟LINUX软件环境下

解决思路:

DOS下文件和Linux下文件格式差异问题导致的。
DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是0A。

【在windows里,换行用的两个符号,回车\r,换行符号\n,在linux下只需一个符号\n就可以了.】
DOS格式的文本文件在Linux下,用较低版本的vim打开时行尾会显示^M,当然也有可能看不到,但是在vim的时候,会在下面显示此文件的格式,"M.txt" [dos] 8L, 72C表示是一个dos文件格式。

解决方案:

使用下面的命令将文件格式设置为unix格式即可解决上述错误

vi test.sh
:set fileformat=unix
:wq
相关标签: Linux linux shell