首页/系统/信创系统运维速查/换行符 CRLF 导致的脚本故障
迁移适配65 条

换行符 CRLF 导致的脚本故障

Windows 上编辑的脚本或配置迁到 Linux 后报 bad interpreter、syntax error:用 dos2unix 或 sed 转换换行符并校验。

信创系统运维速查系统更新于 2026-10-12

安装与转换

安装与转换
dnf install -y dos2unix        # UOS/Ubuntu 系: apt install -y dos2unix
dos2unix /opt/app/bin/start.sh
file /opt/app/bin/start.sh     # 应为 ASCII/UTF-8 text,不含 CRLF 字样

批量处理

批量处理
find /opt/app -type f -name '*.sh' -print0 | xargs -0 dos2unix
# 备选:sed -i 's/\r$//' file.sh
# vim 内查看转换::set ff? 然后 :set ff=unix 保存
CRLF 同样会影响 systemd unit、crontab 行、脚本首行 shebang:批量迁移后逐类抽查。

易错点

  • 先确认文件编码再处理换行:GBK 文本先 iconv 转 UTF-8,顺序颠倒易引入乱码
  • 批量转换限定 *.sh、*.conf 等文本类型,不要对二进制文件执行

数据来源与参考

  • man 1 dos2unix
  • dos2unix 官方项目页(SourceForge)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌