在执行一个shell脚本的时候, 经过检验,内部代码并没有错误,但运行时却提示 ‘\r’: command not found。
这个问题一般发生在Windows创建和编辑.sh脚本上传至Linux服务器运行的情况。问题发生的原因是 因为系统换行符的差异。只要转化脚本为unix格式即可解决问题。
0.1. 问题发生的原因
Windows系统的换行符是 \r\n
,而Linux系统的换行符是 \n
,所以只要把脚本中的 \r 去掉就可以了。
0.2. 问题的解决: 脚本代码转化为unix格式
找到命令脚本文件,执行如下命令:
sed -i 's/\r$//' <文件路径及名称>
待执行完成后,再次运行脚本,即可正常执行内部命令行。