Wildfly/JBoss CLI:如何将变量设置为表达式的结果?

Posted

技术标签:

【中文标题】Wildfly/JBoss CLI:如何将变量设置为表达式的结果?【英文标题】:Wildfly/JBoss CLI: How can I set a variable to the result of an expression? 【发布时间】:2021-07-20 23:55:33 【问题描述】:

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

[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 不支持正则表达式捕获组)

【问题讨论】:

【参考方案1】:

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

set DSUSER=`/subsystem=datasources/xa-data-source=MYDATASOURCE:read-attribute(name=user-name)`

【讨论】:

以上是关于Wildfly/JBoss CLI:如何将变量设置为表达式的结果?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Wildfly (Jboss) 为 ws 端点访问 CXF jar

wildfly / jboss-eap:如何命名 JMS 资源以匹配 EJB2 ejb-jar.xml

在 Wildfly/Jboss 中部署 ear 期间如何防止 HTTP 404

如何使用多个独立实例管理 WildFly/JBoss

更改 Wildfly(JBoss) 访问日志中的日期格式

将 Java EE Web 应用程序部署到 Wildfly/JBoss EAP