【shell踩坑】Windows上编辑脚本文件换行符与Linux不一致报错

之前为了方便访问文件已经将远程的Linux开发板的目录挂载到了本地的Windows系统,现在想用qt调用一个脚本给开发板发指令,想着直接在Windows上用notpad编辑一下吧,如下图

结果不出意外的话就出意外了,我在开发板上跑qt程序调用脚本的时候,出现了下面的报错

纳尼我这不就点个灯吗为啥还会报错,我看报错信息的时候敏锐发现了\r,如果我没记错的时候是回车换行的意思吧,难道是因为格式问题?

然后我就去Linux文件目录下cat了一下,不是我寻思这也没问题呀,这不和notpad一样

本着我俩只能活一个他不死我死的心态,我接着vi看了一下,好家伙不看不知道一看吓一跳

你小子你就,你......

解决方法显而易见在Linux里面重新编辑一下呗(直接把行末这个奇怪的东东删掉保存)

果然可以啦没有报错了!

然后又去查了一下,Linux和Windows换行符的问题

如果脚本是在 Windows 上编辑的,那么可能使用的是 CRLF\r\n)作为换行符,而 Linux 使用的是 LF\n)。因此,在 Linux 上运行时,换行符会导致命令解析错误。

原来如此,这就是报错里面\r乱入的原因。

这个小插曲也告诉我们tradeoff,将Linux目录挂载到Windows固然好操作,但是也存在着编辑文件格式出现问题的风险;很多时候不能想当然,不能想当然觉得这样做没毛病,试一逝不出意外的话就要出意外了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值