期待互动和特殊字符

时间:2015-05-05 06:29:52

标签: macros tcl expect cisco

尝试创建一个宏程序,期望帮助我管理我的cisco设备>

我想保留所有本机cisco功能,例如tab完成ETC。

最初我想输入"!...!"我的宏在刘海里面,我的代码看起来像这样:

interact {
    -re "!(.+)!" { #find correct macro }
}

但是使用这种方法,没有对用户的反馈。如果他们拼错会发生什么?等等他们无法看到他们对退格的更正。

然后我开始考虑捕捉每个角色按下并构建一个字符串

interact {
        #book says backspace character
        "\b" {
                set command [lreplace $command end end]
        }
        #detect return, sending command
        -re "\r" {
                set command [join $command ""]
                if [regexp "^!" $command] {
                        #send ctrl+u to erase line sent
                        send "\025"
                        findMacro $command
                }
                set command ""
                send "\r"
        }
        #send tab for tab completion
        "\t" { send "\t" }
        -re "(.)" {
                send $interact_out(1,string)
                lappend command $interact_out(1,string)
        }
}

但我不能期待"退格。我尝试过0x08 ..等等什么都没有用。最后,我甚至不确定这是怎么回事,因为用户可以按下许多其他按钮并弄乱我的字符串。

我认为,真正的解决方案是等到" \ r"按下,然后在该行上运行正则表达式。但我不知道该怎么做。

0 个答案:

没有答案