[Linux]Linux执行sh脚本时,出现$‘\r‘: command not found(未找到命令)"错误的解决方案[转载]
1 文由
为什么要把这么一个看似很简单的问题,还要以【转载】的方式专门用博客写出来?
主要是在编写crontab的自动化定时脚本的过程中,发现是这个错导致的自动化脚本频繁执行异常时,已经花了好几个小时了,故欲以此博文长个记性!
2021-01-08执行1个自己编的定时脚本时,发现老报这个错:

2021-07-20执行一个Kettle启动脚本时,亦报此错误:

2021-07-27执行一个MYSQL安装脚本时,亦报此错误:

2 原因
脚本是在Windows下编辑完成后上传Linux上执行的,Windows下的换行是回车符+换行符,也就是\r\n,而Linux下是换行符\n。
Linux下不识别\r为回车符,所以导致每行的配置都多了个\r,因此是编码的问题。
3 解决方法
- 方案一
亲测有效
sed -i 's/\r//' <scriptName>

- 方案二
亲测有效
yum -y install dos2unix
dos2unix <scriptFullName>

X 参考文献
[Linux]Linux执行sh脚本时,出现$‘\r‘: command not found(未找到命令)"错误的解决方案[转载]的更多相关文章
- 在Linux中执行.sh脚本,异常
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分析:这是不同系统编码格式引起的:在windows系统中 ...
- 在Linux中执行.sh脚本,异常/bin/sh^M
在Linux中执行.sh脚本,异常/bin/sh^M 在linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分 ...
- Linux定时执行.sh脚本
因为测试ffmpeg推流用flv方式的话没有做自动断流,所以要先用.sh脚本来执行关流,降低CPU和其他资源占用 首先编写.sh文件 #! /bin/bash echo "kill ffmp ...
- linux下执行sh脚本,提示Command not found解决办法
1.确保用户对文件有读写及执行权限 oracle@linux-106:~/RMAN/bin> chmod a+x test.sh 2.然后修改文件格式(如果是从winodws搬过来的会显示dos ...
- 执行*.sh脚本时提示Permission denied
使用chmod修改.sh的权限 chmod u+x *.sh 再次执行
- linux执行sh报错:$’\r’: 未找到命令的解决
背景 执行.sh脚本时出现$'\r': 未找到命令, 原因 是因为命令直接从windows 复制过来导致的 解决 yum install dos2unix dos2unix **.sh 进行转换 再次 ...
- linux执行sh脚本文件命令
linux执行sh脚本文件命令 很多时候需要多个命令来完成一项工作,而这个工作又常常是重复的,这个时候我们自然会想到将这些命令写成sh脚本,下次执行下这个脚本一切就都搞定了,下面就是发布代码的一个脚本 ...
- 每天一个linux命令(62):sh命令 /Linux中执行shell脚本的4种方法总结
bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在 ...
- linux下执行.sh文件的方法和语法
linux下执行.sh文件的方法 .sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限. 是bash脚本么 可以用touch test.sh ...
- Linux中执行 .sh 的方法
linux下执行.sh文件的方法 .sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限. 是bash脚本么 可以用touch test.sh #创建test.sh ...
随机推荐
- 标记一下CF教育场的网址
(因为太难翻了,做到哪里标到哪,自用 Educational Codeforces Round 1 Educational Codeforces Round 2 Educational Codefor ...
- 面向对象3(Java)
多态 基本介绍 即同一方法可以根据发送对象的不同而采用多种不同的行为方式 一个对象的实际类型是确定的,但是可以指向对象的引用类型可以很多 多态存在的条件:a.有继承关系:b.子类重写父类方法:c.父类 ...
- Nacos 之 Distro 协议
1. 概述 Distro协议是阿里自研的一个最终一致性协议,继承了 Gossip 以及 Eureka 通信(PeerEurekaNodes)的优点并做进一步优化而出来的: 对于原生的Gossip,由于 ...
- React中的CSS模块
CSS模块 使用步骤: 1.新建一个XXX.moudle.css文件 2.在组件中引入css impor classes(变量) fro ...
- linux which及软硬链接使用
which查看系统命令位置,which vi /bin #放置系统一般命令 /sbin#放置系统管理相关命令 /user/bin /user/sbin 软链接 ln -s 源文件 链接文件 #1.如果 ...
- SpringBoot - Lombok使用详解3(@NoArgsConstructor、@AllArgsConstructor、@RequiredArgsConstructor)
五.Lombok 注解详解(3) 5,@NoArgsConstructor 注解在类上,为类提供一个无参的构造方法. 注意: 当类中有 final 字段没有被初始化时,编译器会报错,此时可用 @NoA ...
- P2212 Watering the Fields S
题目描述 给定n个点,第i个点的坐标为(xi,yi)(xi,yi),如果想连通第i个点与第j个点,需要耗费的代价为两点的距离.第i个点与第j个点之间的距离使用欧几里得距离进行计算,即:(xi-xj ...
- HTTPS的实现原理 ---- 核心 SSL/TLS协议
是在应用层和 传输层之间 添加的 安全层(SSL/TLS协议) 端口号 :HTTP 默认是 80,HTTPS 默认是 443. URL 前缀 :HTTP 的 URL 前缀是 http://,HTTPS ...
- jmeter 数据库连接
位置:右击添加>配置元件>JDBC Connection Configuration 作用:需要对数据库发起请求查询数据或者对数据库施加压力 3.设置说明 Variable Name(变量 ...
- 深入理解C++的型别推导
所谓型别推导,指的是我们在为变量赋予类型时不必再显式声明,编译器可以根据代码来自动推导类型.C++11中有两种型别推导的场景:模板和auto.下面我们来一一解析. 模板的型别推导 模板在C++中的应用 ...