关于脚本文件(文本文件)的 Line Endings

最近在 Linux 跑 shell 脚本时踩了一个坑,在脚本没问题的情况且赋权的情况下,报"No such file or directory…"的错误。
原因是在 Window环境下,文本文件(包括纯文本内容的脚本文件),默认的 Line Endings(行尾格式)是 “Windows” 格式,在 Linux 环境跑脚本时应使用 “Unix” 格式。
下面是这两种 Line Endings 格式的区别:

Line Endings 格式区别
Windows (CRLF)行尾是 ‘r\n’,即回车+换行
Unix (LF)行尾是 ‘\n’,即换行

如果在 Linux 环境使用 Line Endings 为"Windows"格式,可能会因为多出来的 ‘\r’ (与“Unix”格式相比)导致报错(虽然不一定会报错)。
所以,在 Linux 跑脚本的时候,要注意一下脚本文件的 Line Endings,务必将文件的 Line Endings 改为 “Unix” 格式。

NotePad++可以再右下角直接更改(有些版本需要在编辑选项卡里改);
Sublime Text在View→Line Endings里更改。

此外,在 Linux 运行 HQL 文件时(hive -f hive.sql),报错:ParseException line 1:0 character ‘’ not supported here
因为被hive认可编译的是 UTF-8 无BOM格式编码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值