在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
相关推荐
小白的码BUG之路8 小时前
linux -- ssh两台机器相连
运维·服务器·ssh
缓慢更新9 小时前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
续写烂尾10 小时前
贴片 SD NAND、eMMC、TF 卡规格怎么定?硬件工程师选型清单
运维·服务器·网络
不昀10 小时前
网口Link Up后仍然掉线,怎样区分物理链路和数据通路问题?
linux·以太网
迪康妍妍10 小时前
终端管控实操:封堵网盘与IM外发通道的落地思路
运维·网络·安全·架构·安全性测试
sxgzzn10 小时前
如何选择合适的开关柜在线监测工具?
运维·重构·无人机·开关柜局放在线监测·光伏运维管理系统
科技小E10 小时前
监控设备品牌杂乱无法互通?EasyGBS打通孤岛,统一汇聚视频
服务器·网络·音视频
Lhan.zzZ10 小时前
Qt WebEngineView 在 Linux 上无法加载网页:从“看不见 HTML“到“禁用沙箱“
linux·c++·qt
zxcvb15311 小时前
运维经验分享:监控网页更新内容的几种思路
运维
Fcy64812 小时前
Linux下 多路转接select详解
linux·select·多路转接