我有一个expect命令

expect "~]#" { send "virsh list --all\r"}

结果是
[root@lht1oneems-unit0 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 399   lht1duplexvm-0                 running
 -     rhelvm                         shut off

我想使用$expect_out(buffer)并有一个if语句在发现运行时执行某些操作,如果没有则执行其他操作。
如何解析$expect_out(缓冲区)的结果?

最佳答案

expect "~]#"
send "virsh list --all\r"

# I assume another prompt follows this
expect "~]#"

if { [regexp {running} $expect_out(buffer)] } {
    do-something-for-running-process
} else {
    do-something-for-no-running-process
}

你也可以
if {[string first "running" $expect_out(buffer)] >= 0} {

关于linux - 在期望输出中搜索单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42442777/

10-12 22:40