行业资讯 2025年08月6日
0 收藏 0 点赞 447 浏览 706 个字
摘要 :

文章目录 问题原因 解决方法1:windows本地解决 解决方法2:Linux系统上解决 1)编辑重设编码 2)替换^M 最近在Liunx系统执行在windows上编写的shell脚本时提示执行失……




  • 问题原因
  • 解决方法1:windows本地解决
  • 解决方法2:Linux系统上解决
    • 1)编辑重设编码
    • 2)替换^M

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

    -bash: ./install-server.sh: /bin/bash^M: bad interpreter: No such file or directory

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

    问题原因

    DOS/Windows里,文本文件的换行符为\\r\\n,而在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.zuozi.net/8120.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号