windows操作系统上默认编码GB2312,而在Linux上的默认编码都是utf-8。
所以,Windows下的shell脚本放到Linux下会乱码,执行后报错syntax error near unexpected token '$'\r''。
这种情况发生的原因是因为你所处理的文件换行符是dos格式的"\r\n"
可以使用cat -v 文件名 来查看换行符是否是,如果是上述的,则行结尾会是^m
需要转换成linux/unix格式的"\n"
具体转换办法就是转换换行符
可以用sed命令处理一下文件,命令如下:
sed 's/\r//' 原文件 >转换后文件