这个问题是因为脚本文件包含了 Windows 的换行符(CRLF,即 \r\n),而 Linux/Bash 系统只识别 Unix 的换行符(LF,即 \n)。\r字符在 Bash 中被视为普通字符,导致语法错误。
问题原因
可能在 Windows 上创建了脚本文件,或者用 Windows 编辑器编辑了脚本,导致行尾是 \r\n而不是 \n。
解决方案
使用 dos2unix工具(最简单)
# 安装 dos2unix(如果未安装)
sudo apt-get install dos2unix # Ubuntu/Debian
# 或
brew install dos2unix # macOS
# 或
yum install dos2unix # CentOS/RHEL
# 转换脚本格式
dos2unix colly.sh
# 然后重新运行
chmod +x colly.sh
./colly.sh