如何在bash中获取变量配置的值?

时间:2012-03-04 09:15:41

标签: regex linux bash

我有一个linux配置文件,其格式如下:

VARIABLE=5753
VARIABLE2=""
....

我怎样才能得到f.e.使用标准linux工具或正则表达式的VARIABLE2的值? (我需要解析文件中的目录路径)。提前谢谢。

3 个答案:

答案 0 :(得分:5)

eval $(grep "^VARIABLE=" configfile)

将选择该行并在当前bash上下文中对其进行评估,并设置变量值。完成此操作后,您将拥有一个名为VARIABLE的变量,其值为5753。如果配置文件中不存在这样的行,则不会发生任何事情。

答案 1 :(得分:4)

$> cat ./text 
VARIABLE=5753
VARIABLE2=""

使用perl正则表达式grep可以使用 lookbehind 运算符匹配这些值。

$> grep --only-matching --perl-regex "(?<=VARIABLE2\=).*" ./text
""

对于VARIABLE

$> grep --only-matching --perl-regex "(?<=VARIABLE\=).*" ./text
5753

答案 2 :(得分:4)

您可以使用source(a.k.a。.)命令将文件中的所有变量加载到当前shell中:

$ source myfile.config

现在您可以访问文件中定义的变量值:

$ echo $VARIABLE
5753