原因分析:
windows下编辑的shell文件格式为dos格式,而linux只能执行格式为unix格式的脚本。区别是:dos格式下按一次回车键输入的是"\r\n",而unix下按一次回车键只输入"\n",所以在windows下编写的sh文件在每行都会多一个"\r",所以Linux下运行时就会报错:$’\r’: command not found。
解决方案有三种:
1.用vi/vim转换文件格式(亲测可用)
a.用 vi/vim 命令打开文件
b.在 vi 命令模式中使用命令:set ff ,可以看到当前文件格式为fileformat=dos
c.在 vi 命令模式中修改文件 format 为 unix,命令为:
$ set ff = unix 或者 $ set fileformat = unix
d.最后 :wq 保存退出就可以了
2.sed 命令(亲测可用)
直接使用命令:$ sed -i ‘s/\r$//’ filename
3.dos2unix工具
a.安装dos2unix命令: $ yum install dos2unix -y
b.使用命令将文件dos转为unix:$ dos2unix filename