原因
大多数原因是因为 shell 脚本是在 Windows 编写导致的换行问题,具体原因是 Windows 的换行符号为 CRLF(\r\n),而 Unix\Linux 为 LF(\n)。
名称解释
方法一(推荐):vim 转换为 Unix 换行
# 测试脚本
$ cat windows.sh
#!/usr/bin/env bash
date
# 重现报错
$ sh windows.sh
windows.sh:行2:
nanshan 2025-03-13 18:33 10 浏览 0 评论
大多数原因是因为 shell 脚本是在 Windows 编写导致的换行问题,具体原因是 Windows 的换行符号为 CRLF(\r\n),而 Unix\Linux 为 LF(\n)。
名称解释
# 测试脚本
$ cat windows.sh
#!/usr/bin/env bash
date
# 重现报错
$ sh windows.sh
windows.sh:行2: