在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
相关推荐
全栈工程师修炼指南3 小时前
Nginx | stream 四层反向代理:SSL、PREREAD 阶段模块指令浅析与实践
运维·网络·网络协议·nginx·ssl
旖旎夜光4 小时前
Linux(13)(中)
linux·网络
威迪斯特4 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.4 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔4 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
m0_694845575 小时前
tinylisp 是什么?超轻量 Lisp 解释器编译与运行教程
服务器·开发语言·云计算·github·lisp
ONE_SIX_MIX5 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞055 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
*小海豚*5 小时前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
June`5 小时前
muduo项目排查错误+测试
linux·c++·github·muduo网络库