把Shell脚本从Windows下移到Linux环境下,会有报错
/bin/bash^M: bad interpreter: No such file or directory。
原因是在Windows中,文本文件的行尾通常以回车符(CR)和换行符(LF)的组合表示(称为CRLF),而在Linux和Unix系统中,行尾仅以换行符(LF)表示。
Shell脚本拷贝到windows系统上时变成了DOS格式,以\r\n结尾,而unix系统以\n
结尾。
解决方法:使用sed命令删除脚本中的回车符。
sed -i 's/\r$//' xxx.sh