Linux系统执行shell脚本提示^M报错问题解决

最近在Liunx系统执行在windows上编写的shell脚本时提示执行失败,具体提示如下:

遇到这类问题,解决方案也很简单,下面潘老师来说下该如何去解决。

问题原因

DOS/Windows里,文本文件的换行符为rn,而在Linux系统里则为n,所以DOS/Windows里编辑过的文本文件到了Linux里,每一行都多了个^M,从而导致运行shell脚本报错。

解决方法1:windows本地解决

从问题的根源解决就是在windows上编写shell脚本时,比如潘老师这里时使用Notepad++进行编辑的,需要对shell脚本文件设置如下:
1)设置编码为无BOM的UTF-8格式
Linux系统执行shell脚本提示^M报错问题解决
2)设置右下角系统类型为Unix
Linux系统执行shell脚本提示^M报错问题解决
这样操作之后保存就解决了。

解决方法2:Linux系统上解决

1)编辑重设编码

编辑文件,然后使用set指令设置系统格式为unix

# 编辑
vi xxx.sh
#esc退出执行
:set ff=unix
#再esc保存退出
:wq

一般这样操作过后就解决了,如果还不能解决就尝试下下面这个方法:

2)替换^M

#替换r字符
sed -i 's/r$//' xxx.sh
#如果有^M字符
sed -i 's/^M//g' xxx.sh

以上几种方法,基本就能解决Linux系统执行shell脚本提示^M报错的问题,如还有疑问可以留言讨论。

原创文章,作者:博主,如若转载,请注明出处:https://www.unmao.com/tool/1716.html

下载资源版权归原作者所有,若有侵权,请邮件ziyeblog@126.com及时删除。

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
博主的头像博主管理员
上一篇 2026-07-03 18:05
下一篇 2026-07-03 18:07

相关推荐

发表回复

登录后才能评论
微信
QQ

博主邮箱:ziyeblog@126.com

打赏