因为shell脚本是在Windows上写的,保存时候没有注意文件格式,结果上传到Linux上,执行报$'\r'错误。
搜索一番找到两个简单有效的办法,并亲自试了一下都是可行的:
1、用notepad++打开shell脚本,编辑->文档格式转换->转换为UNIX格式,然后保存;
2、用vi/vim命令打开脚本文件,输入“:set fileformat=unix”,回车,然后wq保存退出。
在操作一番以后,想了想原因,其实是unix(LF)格式的txt的换行标志为:LF(\n),windows(CR LF)格式的txt的换行标志为:CR+LF(\r\n)。这与Linux下执行报错刚好一致。所以在编写shell脚本时,就应该想到在哪个环境上执行,使用哪种文件格式。