今天在学习使用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
网友评论