背景
平时自己设计shell脚本或修改服务器自带的脚本后,执行或者source
的是否会出现了syntax error: unexpected end of file
的错误。
可能出现的问题
- 格式:shell脚本是在
window
系统下写完,然后传到linux
系统时出现,可以使用系统文件格式转化:dos2unix
可以在编vim模式下查看文件格式:vim
->命令模式
->set ff
回车,看下结果fileformat
dos2unix # 将文件格式转化
vim编辑下
:set ff # 在vim中查看文件的系统格式
:set fileformat=unix # 在vim中将系统文件格式改为unix
- 内容:如果上面的dos2unix命令后,执行还是出现报错,那就不是文件格式的问题了,而是代码层级的问题了
因为没有lint代码规范提示,所以你的shell脚本内容,需要从头到尾检查下:
a.if...else...fi
、for...done
、for...if...fi...done
等结构的上下结构闭合是否完整
b. 闭合结构型代码的开始
和结尾
是否有其他多余字符
以上操作,应该就可以解决此问题