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,然后保存。
相关推荐
博.闻广见6 分钟前
第10篇:Agent系统的性能优化 —— 缓存、压缩与动态模型路由
java·人工智能·后端·spring·agent
0+11113 分钟前
Linux --ARP的具体过程与ARP欺骗
linux·服务器·网络
阿星_25 分钟前
Linux Ubuntu 查看 SQLite 工具
linux·ubuntu·sqlite
Irene199129 分钟前
Flink 学习日志 01:前端转大数据的实战避坑指南
java·jvm·flink
Thomas.Sir30 分钟前
第1课:SpringBoot 4.x 快速上手:新特性、环境准备与第一个HelloWorld程序
java·spring boot
devilnumber1 小时前
Java 内部迭代 vs 外部迭代:从原理到实战避坑
java·开发语言
杨运交1 小时前
080-缓存模块-Spring Cache缓存键前缀设计与租户隔离实践
java·spring·缓存
Lsetea1 小时前
OpenSSL的checkhost显示不匹配却退出0:名称检查与证书验收
linux·https·shell·ssl证书·openssl
\光辉岁月/1 小时前
5.math类
java·开发语言
文丑颜不良啊1 小时前
LeetCode76~100题目解析
java·leetcode