在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
相关推荐
70asunflower5 小时前
Docker exec 命令完全解析
linux·ubuntu·docker
古月-一个C++方向的小白5 小时前
Linux——程序地址空间其一
linux
BUTCHER55 小时前
GitLab SSH 密钥配置
运维·ssh·gitlab
云泽8085 小时前
深入浅出 Linux:Shell 运行机制与核心权限指令解析
linux·运维·服务器
比奇堡派星星5 小时前
linux Zram
linux·运维·服务器
bjxiaxueliang5 小时前
一文详解md5sum:在Ubuntu上构建自动化文件完整性校验工具
linux·ubuntu·自动化
EmbedLinX5 小时前
Linux 之网络通信
linux·服务器·c语言·笔记·学习
jason.zeng@15022075 小时前
jenkins踩坑指南
运维·jenkins
hweiyu005 小时前
Linux 命令:patch
linux·运维·服务器