1

我有一个读取数据源的用户名属性的表达式:

[standalone@localhost:9990 /] /subsystem=datasources/xa-data-source=MYDATASOURCE:read-attribute(name=user-name)
{
    "outcome" => "success",
    "result" => "DS_USERNAME"
}

我想将该结果存储在一个变量中,以便可以在其他表达式中使用它。

如果我简单地使用set,它会将变量设置为表达式本身,而不是结果:

[standalone@localhost:9990 /] set DSUSER=/subsystem=datasources/xa-data-source=MYDATASOURCE:read-attribute(name=user-name)
[standalone@localhost:9990 /] echo $DSUSER
/subsystem=datasources/xa-data-source=MYDATASOURCE:read-attribute(name=user-name)

[standalone@localhost:9990 /] $DSUSER
{
    "outcome" => "success",
    "result" => "DS_USERNAME"
}

我真的只是想以某种方式设置 DSUSER,这样 'echo $DSUSER' 会导致 'DS_USERNAME':

[standalone@localhost:9990 /] echo $DSUSER
DS_USERNAME

有什么办法可以做到吗?(我试过用管道将它传递给 grep,但这个 grep 不支持正则表达式捕获组)

4

1 回答 1

3

我相信您可以使用反引号(`)来做到这一点,例如:

set DSUSER=`/subsystem=datasources/xa-data-source=MYDATASOURCE:read-attribute(name=user-name)`
于 2021-07-20T19:02:47.923 回答