Shell编程踩坑之换行符问题 line num: syntax error near unexpected token

      笔者踩坑的过程为:在windows系统上写了一个shell脚本,然后直接在Linux上执行,结果发生了报错,具体报错类似于line num: syntax error near unexpected token `$'do\r`,这里笔者在shell脚本里写了一个for循环,结果报了语法错误。

       具体的报错是在for循环的do换行这里,因为笔者的shell脚本是在windows上写的,windows系统上新建文件默认的换行符为\r\n,而linux上的默认换行符是\n,所以对于shell脚本里面的换行符\r\n,linux会把do\r看成一个整体,把\n认为是换行符,相当于对\r\n这个windows下的换行符进行了拆解,所以自然语法上就会报错。

        具体的解决办法这里提供两个,第一是最直接的,直接在linux下编程shell脚本;第二是在windows下,利用notepad++打开脚本,以显示所有字符的方式打开,可以看到每行的行末都是CR LF,对应\r\n,然后Ctrl F,进入搜索模式,选择替换,查找目标输入\r\n,替换为输入\n,查找模式选择正则表达式,然后点击全部替换即可。

        关于更加详细的关于不同系统的换行符的处理,可以参考笔者的这篇文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值