4.10. 使用 if-else Control Flow


管理 CLI 支持 if-其他 控制流,它允许您根据条件选择要执行的命令和操作集合。if 条件是一个布尔值表达式,评估在 关键字 后指定的管理命令或操作的响应。

注意

如果不支持 -其他语句, 则使用嵌套。

表达式可以包含以下任一项目:

  • 分组和优先级表达式的括号
  • 条件运算符

    • 和 (及&
    • 或(||)
  • 比较运算符

    • 等于(==)
    • 不等于(!=)
    • 大于(>)
    • 大于或等于(>=)
    • 小于(<)
    • 小于或等于(<=)
    • 匹配正则表达式(~=)
重要

match 正则表达式(~=)运算符仅作为技术预览提供。技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

如需有关 技术预览功能支持范围 的信息,请参阅红帽客户门户网站中的技术预览功能支持范围。

以下示例使用 match 正则表达式(~=)运算符来检查 features 系统属性的值是否包含 jgroups

if (result ~= ".*jgroups.*") of /:resolve-expression(expression=${features})
  echo Configuring JGroups
end-if
Copy to Clipboard Toggle word wrap

以下示例尝试读取系统属性 test。如果 结果 不成功 (这意味着该属性不存在),则系统属性将被添加并设为 true

if (outcome != success) of /system-property=test:read-resource
    /system-property=test:add(value=true)
end-if
Copy to Clipboard Toggle word wrap

以上条件使用 结果,在执行 关键字 后 CLI 命令返回,如下所示:

/system-property=test:read-resource
{
    "outcome" => "failed",
    "failure-description" => "JBAS014807: Management resource '[(\"system-property\" => \"test\")]' not found",
    "rolled-back" => true
}
Copy to Clipboard Toggle word wrap

以下示例通过检查服务器进程的启动类型(STANDALONE 或 DOMAIN)发出适当的管理 CLI 命令,以启用 ExampleDS 数据源。

if (result == STANDALONE) of /:read-attribute(name=launch-type)
    /subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled, value=true)
else
    /profile=full/subsystem=datasources/data-source=ExampleDS:write-attribute(name=enabled, value=true)
end-if
Copy to Clipboard Toggle word wrap

使用 的管理 CLI 命令 如果可以在文件中指定 -其他 控制流,则在文件中单独一行执行每个命令。然后,您可以使用 --file 参数以非交互方式将 文件传递到 jboss-cli 脚本。

$ EAP_HOME/bin/jboss-cli.sh --connect --file=CLI_FILE
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat