当执行在Windows系统下修改过的脚本时,会提示存在^M的错误,但是在Linux下直接使用vim打开并不存在。此时可以使用vim -b来打开脚本文件,就可以发现每行的末尾都存在^M。
造成这样的原因是不同的系统使用了不同的换行符。在Windows下文本文件的每一行结尾都有一个回车(' ')和换行符(' ');在Linux下文本文件的每一行结尾都有一个回车(' ');在Mac下文本文件的每一行结尾都有一个换行符(' ')。
所以,当在Linux使用vim打开Windows编辑过的脚本时,^M代表的就是换行符(' ')。
解决办法也很简单就是使用vim -b打开脚本文件,然后使用在交互模式下输入替换命令:%s/^M//g(注意:^M是由+和+打出来的),最后在交互模式下输入保存退出命令:wq即可。