linux sh脚本在windows修改导致无法使用解决方式

方法一:使用 dos2unix 工具转换(推荐)

这是最简单、最标准的方法。

  1. ‌安装 dos2unix‌(如果尚未安装):

    bash 复制代码
    yum install -y dos2unix # CentOS/RHEL # 或者 apt-get install -y dos2unix # Ubuntu/Debian
  2. ‌转换文件格式‌:

    bash 复制代码
    dos2unix 文件名.sh

    执行成功后,会提示 converting file process.sh to Unix format ...。

  3. ‌重新运行脚本‌:

方法二:使用 sed 命令手动去除 \r

如果你不想安装额外软件,可以使用 sed 直接替换掉文件中的回车符。

bash 复制代码
sed -i 's/\r$//' 文件名.sh

注意:-i 表示直接修改原文件,s/\r$// 表示将行尾的 \r 替换为空。

方法三:使用 vim 编辑器修改
  1. 用 vim 打开文件:

    bash 复制代码
    vim 文件名.sh
  2. 在命令模式下(按 Esc),输入以下命令查看是否有 ^M:

    bash 复制代码
    :set ff?

    如果显示 fileformat=dos,说明确实是 Windows 格式。

  3. 修改文件格式为 unix: vim

    bash 复制代码
    :set ff=unix
  4. 保存并退出:

    bash 复制代码
    :wq
方法四:在 Windows 编辑器中修改(预防未来问题)

如果你是在 Windows 上编写脚本,建议在编辑器中设置默认换行符为 ‌**LF (Unix)**‌:

  • ‌Notepad++ ‌:点击菜单栏 编辑 -> 文档格式转换 -> 转为 UNIX (LF),然后保存。
  • ‌VS Code ‌:点击右下角的状态栏(通常显示 CRLF),选择 LF,然后保存。
  • ‌Sublime Text ‌:点击菜单栏 View -> Line Endings -> Unix,然后保存。
相关推荐
额额额对了1 小时前
SPI通信
linux·c语言·汇编·单片机·嵌入式硬件·arm
子木HAPPY阳VIP2 小时前
Ubuntu 关闭防火墙操作步骤
linux·运维·ubuntu
m0_587383002 小时前
24小时自助健身房软硬件解决方案实战指南:从架构设计到部署实施
java·spring·小程序·架构·需求分析
王振超wzc2 小时前
嵌入式开发环境搭建--WM软件安装,Ubuntu操作系统安装
linux·运维·ubuntu
陆卿之2 小时前
Java对接DeepSeek
java·开发语言·人工智能
庄园特聘拆椅狂魔2 小时前
Java 后端转全栈的第一课:从前端项目搭建到技术选
java·开发语言·前端
烽火聊员2 小时前
Android屏幕卡顿traces.txt拉取查看
android·java·android studio
lzhdim3 小时前
C#不为人知的10个魔法特性:资深开发者也会震惊的底层奥秘
java·前端·javascript·算法·c#
ProcessOn官方账号3 小时前
java IO操作 你快速认识IO的相关基本知识
java·开发语言