先只读检查
下面的命令只查看文件类型和隐藏字符,不修改内容:
file deploy.sh
cat -v deploy.sh | head若看到 CRLF、^M 或 /bin/bash^M,基本可以确认行尾问题。
修改风险转换前先备份脚本。不要对未知目录批量执行行尾替换。
只修复目标脚本
确认备份后,在 Linux 上移除每行末尾的回车:
sed -i 's/\r$//' deploy.sh随后检查第一行应类似 #!/usr/bin/env bash,并确认脚本具有执行权限。若脚本不需要直接执行,也可以明确使用 bash deploy.sh。
仍然失败时
- 检查文件名是否含空格或不可见字符。
- 确认当前目录与脚本实际路径一致。
- 确认远端安装了 shebang 指定的解释器。
- 避免在 PowerShell、Git Bash 和 WSL 间直接拼接路径。
成功标志
file deploy.sh不再显示 CRLF。cat -v看不到^M。- 最小命令可以执行,再恢复完整部署流程。