方法一:使用 dos2unix 工具转换(推荐)
这是最简单、最标准的方法。
-
安装 dos2unix(如果尚未安装):
bashyum install -y dos2unix # CentOS/RHEL # 或者 apt-get install -y dos2unix # Ubuntu/Debian -
转换文件格式:
bashdos2unix 文件名.sh执行成功后,会提示
converting file process.sh to Unix format ...。 -
重新运行脚本:
方法二:使用 sed 命令手动去除 \r
如果你不想安装额外软件,可以使用 sed 直接替换掉文件中的回车符。
bash
sed -i 's/\r$//' 文件名.sh
注意:-i 表示直接修改原文件,s/\r$// 表示将行尾的 \r 替换为空。
方法三:使用 vim 编辑器修改
-
用 vim 打开文件:
bashvim 文件名.sh -
在命令模式下(按
Esc),输入以下命令查看是否有^M:bash:set ff?如果显示
fileformat=dos,说明确实是 Windows 格式。 -
修改文件格式为 unix: vim
bash:set ff=unix -
保存并退出:
bash:wq
方法四:在 Windows 编辑器中修改(预防未来问题)
如果你是在 Windows 上编写脚本,建议在编辑器中设置默认换行符为 **LF (Unix)**:
- Notepad++ :点击菜单栏
编辑->文档格式转换->转为 UNIX (LF),然后保存。 - VS Code :点击右下角的状态栏(通常显示
CRLF),选择LF,然后保存。 - Sublime Text :点击菜单栏
View->Line Endings->Unix,然后保存。