Linux 从 shell 脚本中的属性文件读取数据
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/18711700/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Reading data from properties file in shell script
提问by charan
I am writing a shell script which reads data from a properties file and stores in into a local variable in shell script. The problem is when i am trying to read multiple properties from the file and form a string its getting over written
我正在编写一个 shell 脚本,它从属性文件中读取数据并将其存储到 shell 脚本中的局部变量中。问题是当我试图从文件中读取多个属性并形成一个字符串时,它会被覆盖
#!/bin/bash
. /opt/oracle/scripts/user.properties
echo $username
echo $password
echo $service_name
conn=$username$password$service_name
echo $conn
the values of username=xxxx password=yyyy and service_name=zzzz i expect the output to be
username=xxxx password=yyyy 和 service_name=zzzz 的值我希望输出是
xxxxyyyyzzzz
but instead of that i am getting the output as
但不是这样,我得到的输出是
zzzz
please tell me where am i doing the mistake ?
请告诉我我在哪里做错了?
采纳答案by devnull
I'm certain that the file /opt/oracle/scripts/user.properties
contains CR+LFline endings. (Running the file
command for the properties file would say ... with CRLF line terminators
). Changing those to LF
using dos2unix
or any other utility should make it work.
我确定该文件/opt/oracle/scripts/user.properties
包含CR+LF行结尾。(运行file
属性文件的命令会说... with CRLF line terminators
)。将它们更改为LF
usingdos2unix
或任何其他实用程序应该可以使其工作。
Moreover, instead of saying:
此外,而不是说:
conn=$username$password$service_name
you could say:
你可以说:
conn="${username}${password}${service_name}"