原因: 在windows下编辑的文件远程传送到linux下的时候每行末尾都会出现^M,这将导致shell脚本运行错误,主要是因为dos下的编辑器和linux下的编辑器对文件末行的回车符处理不一致导致。 解决方案: cat -A filename 就可以看到Windows下的断元字符 ^M 要去除他,最简单用下面的命令: dos2unix filename