在windows中编写的脚本,在linux上运行时报错linux $‘\r‘: command not found

在windows中编写的脚本,在linux上运行时报错linux $'\r': command not found

1.问题描述:

在windows中编写的脚本,在linux上运行时报错

powershell 复制代码
linux $'\r': command not found

2.原因:

因为脚本在Windows系统编写时,换行是\r\n。

而在Linux系统中换行是\n。

所以在Linux中运行脚本时,系统会认为\r是一个真实的字符(不是换行符),导致运行错误。

3.查看是否有\r的方法

powershell 复制代码
vim -b test.yml

# -b:(binary mode) 二进制模式

打开后就能看到每行后面都会有一个^M,这个就是不能识别的那个字符\r

4.解决办法:

4.1方法一:直接对脚本文件执行
powershell 复制代码
sed -i 's/\r//' test.sh
4.2方法二:使用vi,替换\r
powershell 复制代码
vim -b test.yml
shift + :
输入  %s/\r//g
4.3方法三:使用vi,进行格式转化
powershell 复制代码
vim  test.yml
shift + :
输入  set ff=unix
相关推荐
赋缘汇(fableshare)-黄从庆6 分钟前
Ubuntu重启后进入initramfs导致无法开机
linux·运维·ubuntu
CHINA红旗下13 分钟前
固定虚拟机的IP地址
运维·服务器·网络
DO_Community14 分钟前
百亿参数开源模型托管成本账:从按 Token 计费到单卡 GPU 服务器怎么选?
运维·服务器·开源·llm·agent
1024+15 分钟前
在 ‌Ubuntu 24.04‌ 上安装 ‌Python 3.8‌
linux·python·ubuntu
着迷不白18 分钟前
十、网络客户端工具curl, wget, ssh, scp, sftp, rsync
运维·网络·ssh
the sun3421 分钟前
集群架构实操:MySQL主、从节点配置
运维·服务器
袁小皮皮不皮29 分钟前
6.HCIP OSPF域间防环机制与虚链路
服务器·网络·笔记·网络协议·学习·智能路由器
ai安歌30 分钟前
鸿蒙PC:Linux 搭建 Rust 开发环境并实现计算器项目
linux·rust·harmonyos
fan_music31 分钟前
后端学习链接
linux
睡不醒男孩03082332 分钟前
CLup篇之数据库传统运维对比
运维·数据库