我的expect_output(缓冲区)如下所示。
status QM1
QM(QM1) Status(Running)
CPU: 0.02%
Memory: 106MB
Queue manager file system: 391MB used, 47.3GB allocated
[1%]
HA role: Primary
HA status: Normal
HA control: Enabled
HA preferred location: Here
mqa(mqcli)#
尝试了多个正则表达式选项,但我一直得到0,因为没有匹配。
regexp /^.*\b(Running)\b.*$ $qmgrstat
相似,得到“HA Status”的值。
什么是正确的正则表达式语法。
如果要在“QM”状态运行时捕获HA状态,则可以执行此操作
if {[string match {*Status(Running)*} $qmgrstat]} {
regexp {HA status:\s+(\S+)} $qmgrstat -> status
}
不确定我理解。你只想匹配HA status
的价值吗?如果是,那么这个正则表达式会这样做:
HA status:\W*(.*)
您可以使用以下正则表达式来获取整个输出:
status[^\v]*\vQM[^\v]*\vCPU:[^\v]*\vMemory:[^\v]*\vQueue manager file system:[^\v]*\vHA role:[^\v]*\vHA status:[^\v]*\vHA control:[^\v]*\vHA preferred location:[^\v]*\vmqa[^\v]*#\v
如果你想要使用状态的完整文本行:[^\v]*Status\([^\v]*
要获得具有HA状态的行,您可以使用:HA status:[^\v]*
祝好运!