解决方案:
1.检查 shell 脚本格式是否为:Unix(LF),因为在 windows 下编写脚本,格式为:Windows(CR LF),在 Linux 系统下会乱码。
2.通过 Linux 文本编辑器 vi、vim 等编辑脚本看不出乱码,需要使用 cat -v 脚本查看,本次出问题的是每一行最后都有一个^M乱码。
3.使用 dos2unix 工具转换 shell 脚本。
# 更新
sudo apt-get update
# 安装
sudo apt-get install dos2unix
# 转换
dos2unix shell脚本