这个错误是因为脚本文件包含了 Windows 风格的换行符(CR LF),而不是 UNIX/Linux 所期望的换行符(LF)。在 UNIX/Linux 系统中执行含有 Windows 换行符的脚本会导致 未找到命令 和 语法错误 的问题,因为 shell 无法正确解析文件。
可以使用 dos2unix 工具来转换文件的换行符,从而解决这个问题。如果你的系统中还没有安装 dos2unix,你可以根据你的 Linux 发行版安装它。
安装 dos2unix
Debian/Ubuntu
sudo apt-get update
sudo apt-get install dos2unix
CentOS/RHEL
sudo yum install dos2unix
安装完 dos2unix 后,运行以下命令将脚本文件中的换行符从 CR LF 转换为 LF:
dos2unix test.sh