Shell错误syntax error: unexpected end of file

今天在学习使用shell脚本时遇到一个错误,脚本是参考示例shell手动写的。刚开始比较少的时候还可以运行,当整个写完,在Mac终端运行,发现一直报错

line 71: syntax error near unexpected token `}'

于是查看了71行,是一个函数的 } ,同时查看了前后一行的脚本,也没有问题。
重复了几次,还是错误,于是这个函数注释,发现后面一个函数报同样的错误,甚是无解,所以直接将注释到最后。运行,发现以下错误

syntax error: unexpected end of file

根据"syntax error: unexpected end of file" 问了百度大大,大家基本都说文件格式问题,给出解决办法如下(这个问题常发生在Windwos):
使用vim打开脚本文件,查看文件编码并且修改未unix

:set fileformate  //或者 :set ff 得到当前格式

:set fileformate=unix  // 设置文件格式未unix

然而,发现我是直接用终端执行 touch test.sh创建脚本文件的。所以脚本格式就是unix
最后又尝试使用Xcode创建脚本,将自己得脚本复制过去,还是同样得错误。
最后的最后,经过仔细检查,是在第一个报错得函数内部的fi 写为了if , 所以if if 就没有成对出现,但是终端又没有精确指出。
总结,关键字拼写错误也可能造成 syntax error: unexpected end of file

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容