关于shell脚本语法错误: 未预期的文件结尾

背景:

shell脚本是在nodepad++中写的,写完需要上传到azkaban上进行调度执行

在azkaban执行脚本的时候,脚本运行报错

语法错误: 未预期的文件结尾

然后我就在脚本中查找问题,看了一圈好像没什么语法问题呀,然后我就把脚本内容直接粘贴到linux系统中创建的空脚本文件,发现运行正常,这个就很纳闷了,直到我发现nodepad++文件中有不同的行结尾格式

原来是不同操作系统下的行结尾不同

windows系统下,每行的结尾为 \r\n (回车 换行)
linux系统下,每行的结尾为 \n (换行)
max系统下 每行的结尾为 \r (回车)

在nodepad++中如何修改行结尾格式

edit–>EOL Conversion —> Windows Format / UNIX/OSX Format /Old Mac Format

如果在linux中操作的文件使用 UNIX/OSX Format,修改完成后会发现文件底部行结尾格式变成了UNIX
关于shell脚本语法错误: 未预期的文件结尾_第1张图片
修改保存后,该脚本放到linux系统中或者放到azkaban调度都是可成功执行的。
所以看到诸如 语法错误: 未预期的文件结尾这种错误,如果排除了语法的问题,需要考虑是否是文件本身的问题。

你可能感兴趣的:(shell)