事件起因,最近刚接触Shell脚本编写,是在Windows上进行的编写,上传到服务器后执行报错 “行X: $'\r': 未找到命令”。
后来查找资料发现,在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次回车键只输入“换行(LF)”,在Windows中文件在每行都会多了一个CR,所以Linux下运行时就会报错找不到命令。不仅只有回车,同样包含反斜杠与正斜杠的使用等等。而解决原因的根本办法就是就是把dos文件格式转换为unix格式。