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,然后保存。
相关推荐
Wang's Blog13 小时前
Java 项目实战: 交友项目 - FastDFS:入门案例
java·开发语言·交友
apcipot_rain14 小时前
C++转Java日记(03)
java·开发语言·c++
皮皮林55114 小时前
Java实现微信扫码登录
java
LongRunning16 小时前
【Linux】RK3568-OpenCV+YOLO(八)
linux·opencv·yolo
Yyyyyy~16 小时前
【Java】Day4Web基础知识
java·spring boot
灿飞屋18 小时前
Kotlin与Java虚拟机三:控制流
android·java·开发语言·后端·python·kotlin·安卓
NE_STOP18 小时前
Spring AI Alibaba - MCP入门
java
nice_lcj52018 小时前
【从零理解 Spring AI · 07】对话记忆:让模型记住上一句说了什么
java·spring ai·ai应用开发·chatmemory·对话记忆
民乐团扒谱机19 小时前
【微实验】NSGA-II(非支配排序遗传算法)——解决多目标优化问题的“自然选择模拟器”
linux·人工智能·算法
SL_staff19 小时前
制造业交付崩盘?用跨部门节点协同计划打通销售、生产与质量链路
java·开源·产品