在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
相关推荐
xiaoxiangsiyan6 小时前
RHCE2026完整版全知识点清单
运维·网络·学习·自动化·rhce
风控PM说6 小时前
自动化风控策略生成:基于决策树的方法
运维·决策树·自动化
Titan20247 小时前
Linux网络基础知识
linux·服务器·网络·c++·学习
皮皮蟹虾饺7 小时前
NCCL 源码解析:通信器从出生到消亡的完整一生
linux·人工智能·ubuntu·语言模型·kubernetes
Java&Develop7 小时前
QuantDinger 宝塔 Linux 部署完整指南
linux·运维·状态模式
RisunJan8 小时前
Linux命令-tcpdump(网络数据包捕获)
linux·网络·tcpdump
头茬韭菜8 小时前
第 9 篇:「Fluss 运维实战」—— 部署、监控与故障排查
运维·fluss
Titan20248 小时前
Linux网络学习:套接字、UDP的封装与应用
linux·服务器·开发语言·网络·c++
.冰块.8 小时前
两套完整 Linux 建站实战:Wordpress 博客(LAMP)+ECShop 电商(LNMP)全套手册
linux·运维·项目实战·lnmp·lamp·电商平台·博客平台
杨云龙UP8 小时前
生产环境MySQL多实例XtraBackup全量备份与rsync异地自动传输实践
linux·运维·数据库·mysql·xtrabackup·主从复制·备份恢复