处理windows和linux换行符不一致工具dos2unix

从windows上传到linux服务器的shell脚本,用sh 执行报错

test.sh: line 2: $'\r': command not found

报错解释:

这个错误通常发生在Windows系统中使用了Unix/Linux的换行符(LF),而在Unix/Linux系统中使用了Windows的行尾符(CRLF)时。$'\r': command not found表明shell尝试执行一个以回车符(Carriage Return, CR)结尾的命令,但是CR后面没有跟随换行符(Line Feed, LF),导致shell无法识别命令的结束,并报错。

解决思路:

  • 转换文件格式:使用dos2unix命令或者sed等工具将文件的行尾符从CRLF转换为LF。

dos2unix filename
sed -i 's/\r//' filename
  • 检查脚本中是否有不正确的命令,确保每个命令都以换行符结束。

  • 如果是在编辑器中编辑脚本,确保编辑器使用正确的文件格式。

  • 如果是从Windows共享文件夹中获取的脚本,请在Unix/Linux系统中重新创建文件并确保使用正确的换行符。

##安装dos2unix
sudo yum install dos2unix
##使用dos2unix
dos2unix test.txt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值