linux环境中替换window换行符为linux换行符

本文探讨了在Linux环境下脚本中出现的' ':commandnotfound错误,源于Windows的CR换行在Linux不被识别。提供了两种解决方法:用vim设置文件格式为Unix和使用dos2unix工具转换。

一,错误报文:

bash: $'\r': command not found
bash: $'\r': command not found
bash: $'\r': command not found
/etc/bash.bashrc: line 1: $'return\r': command not found
/etc/bash.bashrc: line 2: $'\r': command not found
/etc/bash.bashrc: line 7: $'\r': command not found
/etc/bash.bashrc: line 18: $'\r': command not found
/etc/bash.bashrc: line 37: $'\r': command not found
bash: $'\E[0': command not found
bash: $'31m\r': command not found
bash: _____: command not found
bash: eval: line 26: syntax error near unexpected token `_'

二,错误原因:

出现的原因是该脚本在window上编辑过,widnow 上文件换行是 \r\n 而 linux上是 \n。
在Windows下换行的“\r”到了Linux环境下不能够识别了,因为Linux环境下默认的换行符为“\n”。

三,解决错误:

此问题解决方式有如下两种:

1,进到脚本中执行

将换行符设置成UNIX的模式

脚本放到linux上 使用 vim 打开,并执行 :set ff=unix 命令 (执行后记得使用 :wq 保存一下)

#=> vim docker-test.sh
#=> :set ff=unix			
#=> :wq
2,借助于dos2unix插件转化功
1)进入Linux环境下安装该组件
apt-get install dos2unix
2)在需实行的目录中执行插件命令
dos2unix *
3)目录中批量替换.py文件中的换行符
sudo find /home/test -name "*.py" | xargs dos2unix
sudo find /home/test -name/* | xargs dos2unix
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值