macOS终端报错syntax error: unexpected end of file的问题debug过程及一种解决方法
(认知有限,如有不妥,还请告知,欢迎讨论)
运行TLCL里的范例程序时遇到的问题
问题复现
将http://billie66.github.io/TLCL/book/chap30.html这里的第二个while循环例子的代码直接复制进vi创建的脚本文件while_sample4.sh后,将脚本文件运行,出现报错
./while_sample4.sh: line 41: syntax error: unexpected end of file
debug过程
将错误line 41: syntax error: unexpected end of file扔上谷歌和百度后,大部分的答案是和编写脚本时所用的OS有关,由于是在macOS的终端写的[1],故不属于这个问题。
然后翻到这个帖子[2], 对照检查了if和fi的个数,没有问题。
然后检查缩进,发现将_EOF_前的缩进删除,脚本则可顺利运行
对比
原_EOF_:

删除掉_EOF_前面的缩进后:

=END=
=reference=
[1]https://en.wikipedia.org/wiki/MacOS
[2]https://stackoverflow.com/questions/9886268/shell-script-syntax-error-unexpected-end-of-file
[3]http://billie66.github.io/TLCL/book/chap26.html