背景:
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
修改保存后,该脚本放到linux系统中或者放到azkaban调度都是可成功执行的。
所以看到诸如 语法错误: 未预期的文件结尾
这种错误,如果排除了语法的问题,需要考虑是否是文件本身的问题。