如何在JBoss-CLI中读取第一个主机名?
解决方案
方法1:从主机列表中提取第一个元素
由于你的场景中始终只有一台主机,可直接通过索引访问列表的第一个元素:
# 获取主机列表 set host=`:read-children-names(child-type=host)` # 提取列表中的第一个主机名 set currentHost=$host[0] # 输出验证结果 echo $currentHost
执行后会直接返回单个主机名(如master),而非数组格式。
方法2:直接读取当前主机的内置属性(更规范)
WildFly/JBoss内置了系统属性jboss.host.name,用于标识当前主机的名称,通过解析该属性可直接获取目标值,无需处理主机列表:
set currentHost=`:resolve-expression(expression=${jboss.host.name})` echo $currentHost
这种方式更贴合JBoss-CLI的规范用法,完全依赖WildFly内部配置,不会受外部环境变量的限制。
对比临时方案
你依赖WindowsCOMPUTERNAME环境变量的方案虽然能工作,但如果后续主机名与计算机名的映射关系变更,脚本会直接失效。上述两种方法均直接从WildFly内部获取数据,稳定性和通用性更强。
内容的提问来源于stack exchange,提问作者DAB
相关产品推荐
相关产品推荐

