我正在编写一个shell脚本,它从属性文件中读取数据并将其存储到shell脚本中的本地变量中。问题是当我试图从文件中读取多个属性并形成一个字符串时,它已经过了写
#!/bin/bash
. /opt/oracle/scripts/user.properties
echo $username
echo $password
echo $service_name
conn=$username$password$service_name
echo $conn
username = xxxx password = yyyy和service_name = zzzz的值我希望输出为
xxxxyyyyzzzz
但是我没有把输出作为
zzzz
请告诉我我在哪里犯这个错误?
答案 0 :(得分:8)
我确定文件/opt/oracle/scripts/user.properties
包含CR+LF行结尾。 (对属性文件运行file
命令会说... with CRLF line terminators
)。使用LF
或任何其他实用程序将这些更改为dos2unix
应该可以使其正常工作。
而且,而不是说:
conn=$username$password$service_name
你可以说:
conn="${username}${password}${service_name}"