Loading... 最近写了一个shell脚本,,是在Windows系统下写的,编写完成后复制到Linux系统中执行时报错了,大概是这样,,, ```bash build.sh: line 3: $'\r': command not found : invalid option set: - set: usage: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...] build.sh: line 6: $'\r': command not found build.sh: line 11: $'\r': command not found build.sh: line 18: $'\r': command not found build.sh: line 20: syntax error near unexpected token `$'{\r'' 'ild.sh: line 20: `setup_install() { ``` 原因是换行符格式问题导致的,Windows系统中用的是 `\r\n` 换行,Linux系统则用 `\n`,在Linux 系统中会将 Windows风格的换行符中的 `\r` 视为普通字符,从而导致错误,, 解决方法很简单,使用sed 删除每一行末尾的 `\r` 就可以了 ```bash sed -i -e 's/\r$//' build.sh ``` 或者用dos2unix工具进行转换,`dos2unix build.sh` Last modification:April 25, 2025 © Allow specification reprint Support Appreciate the author Like 如果觉得我的文章对你有用,请随意赞赏