Linux系统和其他系统的编码设置不一致,可能导致中文字符无法正确映射或者换行符

dos-unix/mac

//问题
dos下编码结尾多个^M

//解决
dos2unix xxxx.sh  #格式化脚本,剔除非正常结尾
sed -i 's#\^M$##g'  xxx.sh

#vi/vim
vi xxx.sh
:set ff      //查看编码环境    set ff=unix

iconv -f gbk -t utf8 原.txt > 新.txt    # 转换编码