我在Mac Os X中使用sh 3.2。我有一个文件test.conf
config1="Configuration 1"
config2="a lot of text"
config3=...
所以我只需要获取config1=
和config2=
参数。如何设置变量,我可以这样做:
> echo $variable
Configuration 1
这么简单,但我没有这样做。
答案 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
。 (使用您提供的示例,这将导致语法错误,因为该值不能包含未加引号的空格。)
我一般建议初学者远离反叛,但这是一个很好的答案。