Shell命令获取配置值

时间:2011-10-10 15:40:23

标签: shell command-line command sh

我在Mac Os X中使用sh 3.2。我有一个文件test.conf

config1="Configuration 1"
config2="a lot of text"
config3=...

所以我只需要获取config1=config2=参数。如何设置变量,我可以这样做:

> echo $variable
Configuration 1

这么简单,但我没有这样做。

3 个答案:

答案 0 :(得分:2)

您正在寻找的是source

source test.conf
echo $config1        #echoes Configuration 1

如果您需要在变量中包含config1,请添加

varible=$config1

答案 1 :(得分:1)

粗略猜测......

export `grep 'config1=' /your/config/file`
export `grep 'config2=' /your/config/file`

但是请记住,如果你把它放在一个shell脚本文件中,那么你需要eval该文件而不是执行它来设置当前shell实例中的变量。

答案 2 :(得分:0)

你可以这样做:

variable=`sed -n 's/^config1=//p'`

或者,如果您尝试评估文件的某些部分,请尝试使用

eval `grep ^config1= test.conf`

让当前shell评估config1=Configuration 1。 (使用您提供的示例,这将导致语法错误,因为该值不能包含未加引号的空格。)

我一般建议初学者远离反叛,但这是一个很好的答案。