在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
相关推荐
智联视频超融合平台1 小时前
智慧赋能光伏运维——无人机巡检+地面监控双链路覆盖,打造光伏电站管理新标杆
运维·人工智能·网络协议·信息可视化·音视频·无人机
孤寂大仙v1 小时前
【Linux笔记】——Linux线程封装
linux·笔记·算法
樂5021 小时前
RHCE 练习三:架设一台 NFS 服务器
linux·服务器·网络
小飞敲代码1 小时前
【Hadoop 实战】Yarn 模式上传 HDFS 卡顿时 “No Route to Host“ 错误深度解析与解决方案
大数据·linux·运维·服务器·hadoop·分布式·hdfs
水银嘻嘻1 小时前
03 接口自动化-精通Postman之接口鉴权,接口Mock,接口加解密以及接口签名Sign
运维·自动化·postman
不念霉运1 小时前
Gitee DevOps:中国企业数字化转型的加速引擎
运维·gitee·代码规范·devops·代码复审
zanglengyu2 小时前
RK3568解码1080P视频时遇到系统崩溃内核挂掉的解决方案
linux·音视频·rockchip
遇见火星2 小时前
在CentOS系统上部署GitLabRunner并配置CICD自动项目集成!
linux·运维·ci/cd·centos·gitlabrunner
大脸男孩2 小时前
gitlab迁移
运维·gitlab
Hello.Reader2 小时前
使用 NGINX 的 `ngx_http_secure_link_module` 模块保护资源链接
运维·nginx·http