关于expect和tcl的问题

时间:2011-09-22 13:03:55

标签: tcl

我对expect / tcl有疑问, 我期待以下

expect "class room: classroom 1"
send "classroom"

send "classroom" will return "class room: classroom 1"

但这不匹配,因为预期的匹配变为

class room: classroom 1:

如何在期待中处理“:”?

2 个答案:

答案 0 :(得分:1)

开发期望计划的第一条建议:在spawn使用此命令之前

exp_internal 1

这将向您展示期望的内容,您可以看到它是如何做的,与您预期的模式不符。

接下来,您可以使用expect -re {^pattern$}为模式指定正则表达式。默认模式模式是glob-style匹配,在Tcl的string match命令中有记录。 Tcl正则表达式记录在here

您想要编码:

send "classroom\r"
expect -re {class room: classroom 1:?}

答案 1 :(得分:0)

expect将匹配任何子字符串

send "hello"
expect "he"

那将匹配。你的第二个“:”来自哪里?