Shell 脚本参数传递时有 \r 换行符问题

来由:datax 使用 [““] write端字段数为0,把[””]替换成具体列名后,好家伙,执行时首先把job的配置文件内容打印出来,一看,dbname和tablename后都有\r。

问题原因:
Unix体系里,每行结尾只有"<换行>”,即"\n";
Windows体系里面,每行结尾是"<换行><回 车>”,即"\n\r”。
所以当从Windows上把脚本放入Linux上后,会把"\n\r”一起带入

解决方法:
allSyncTask.sh:脚本名称,自定义

1.使用命令:

dos2unix  shell.sh

找不到dos2unix命令时,安装dos2unix:

yum install dos2unix
yum install unix2dos

2.去掉"\r"命令:

sed -i "s/\r//" shell.sh

---------------------------------------- 20230328分界线 -----------------------------------------------------------
找到了一个简单的方法。
修改执行脚本文件类型
shell脚本格式必须是unix才行,但这个脚本是在windows上编写完成传到Linux服务器上的,所以需要修改。

windows环境下的文件是dos格式,即每行结尾以\r\n来标识,而linux下的文件是unix格式,行尾则以\n来标识;

查看文件格式:vim seatunnel-env.sh,编辑文件,执行“:set ff”,若执行结果为fileformat=dos则为dos格式,若执行结果为fileformat=unix则为unix格式。

修改文件格式::vim seatunnel-env.sh,编辑文件,执行“: set ff=unix”,将文件设置为unix格式,然后执行“:wq”,保存退出。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值