前次是移植Redhat遇到\r来捣乱,此次编写Linux脚本又遇到字符0D来惹麻烦。windows
这个脚本是从网上一个参考案例中复制过来,想省点事,结果比本身敲10遍还费事。bash
很简单的命令:ide
# /bin/bashunix
DB_USER="root"
echo $DB_USERget
DB_USER1=$DB_USER""==it
echo $DB_USERclass
结果输出是:变量
root方法
==ot脚本
查了好一阵,才发现Linux中每行结束只有0A,而网上复制过来后,在windows系统中会变成0D 0A,多出来的0D会附加在变量上,因为不可见,所以被我忽略。可是0D被Linux系统解释为回到行头,因而就从新输出,替代了原来的字符。
怎么办呢?只好多长一个心眼,在Linux下手工敲赋值语句了。另一个方法是安装dos2unix,将windows下编辑的文本中0D 0A改成0A。
安装dos2unix的命令:sudo apt-get install dos2unix
而后,dos2unix 脚本名称