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