我正试图为其中一个单元测试创建一个条件。我已经检查了其他的例子,但他们似乎不适合我。条件如下:
expect -c "
spawn virsh --connect qemu:///system console ${name} --force
....
set ret 0
....
expect {
"OK"{
send " r"
}
"FAIL"{
set ret 1
send " r"
}
}
…
退出美元ret
但是,它返回ret: unbound变量并中断脚本。有什么办法吗?
我看到两个问题:
-
您使用双引号
开始"
来包围整个expect程序,但您也在带引号的程序中使用它们。最简单的解决方法是将外部引号更改为单个'
,因此从expect -c '
-
在
expect
命令中,您需要在每个模式和动作之间设置一个空格,即将"OK"{
更改为"OK" {
,类似地更改为"FAIL"例子。
(实际上你甚至不需要引号,OK {
就可以了,但它们不会造成任何伤害。)