1、在Linux下执行某个脚本文件却提示$'\r': command not found,如下图:
2、错误原因:
a、 Windows 风格的换行符:Windows 系统使用 \r\n
作为行结束符,而 Linux 和 Unix 系统使用 \n
。当你从 Windows 环境中复制文本到 Linux 环境时,可能会不小心包含 \r
(回车符)。
b、脚本文件中的错误:如果在 Linux 上编辑一个原本在 Windows 上创建的脚本文件,并且使用了 Windows 风格的文本编辑器(如 Notepad++ ),这些编辑器可能会在保存时添加额外的 \r
字符。
3、解决办法
使用 sed
命令手动删除文件中的 \r
字符
sed -i 's/\r$//' XXX.sh