我有一个这样的配置文件:
//filename : stat.conf
LAS_SERVER="127.0.0.1"
LAS_PORT=3306
LAS_USER=root
LAS_PWD=root
LAS_DB=test
CONN_STR_LAS_DB="-h$LAS_SERVER -P$LAS_PORT -u$LAS_USER -p$LAS_PWD $LAS_DB"
现在我像这样运行 source
命令:
$ source ./stat.conf
$ echo $CONN_STR_LAS_DB
testot.0.1
可以看到结果是错误的。出乎我们的意料。
相比之下,如果我像这样在 shell 中运行命令,我可以获得正确的结果:
$ LAS_SERVER="127.0.0.1"
$ LAS_PORT=3306
$ LAS_USER=root
$ LAS_PWD=root
$ LAS_DB=test
$ CONN_STR_LAS_DB="-h$LAS_SERVER -P$LAS_PORT -u$LAS_USER -p$LAS_PWD $LAS_DB"
$ echo $CONN_STR_LAS_DB
-h127.0.0.1 -P3306 -uroot -proot test
这是正确的结果。
所以,我的问题是:为什么我在使用“source ./stat.conf”时得到了错误的结果?
我在另一台电脑上测试了同样的操作,可以得到正确的结果。我在计算机上配置时是否遗漏了什么?
我的操作系统是 CentOS 5。
最佳答案
您的配置文件具有 Windows 样式的行结尾 (\r\n),而不是 Unix 样式(只是\n)。你可以使用 dos2unix 命令来转换它。然后,切换到不会创建具有奇怪行尾的文件的文本编辑器。
关于linux - Bash "source"命令返回错误的连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12851470/