前次是移植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 脚本名称