【问题标题】:Curly brackets in Expect language "expect" command?期望语言“期望”命令中的大括号?
【发布时间】:2014-10-13 19:44:35
【问题描述】:

我对 Expect/TCL 非常陌生,只是想确认在下面的示例中,花括号在 bash 中仅作为单引号将expect 命令的主体分组?示例:

expect {
        -re "(P|p)assword: " { send "$pwd\r" }
        -re "Connection timed out" { puts "Timeout error"; exit 1 }
        -re "Connection closed" { puts "Host error"; exit 1 }
        timeout { puts "Timeout error"; exit 1 }
        eof { puts "Connection error"; exit 1 }
}

【问题讨论】:

标签: tcl expect


【解决方案1】:

在标准 Tcl 中,这正是大括号的工作方式。 (好吧,很多命令实现会立即使用引用的东西,但一切都和你期望的一样。)

但是,您正在查看expect 命令的主体。外大括号(在第一行和最后一行)是保证以这种方式工作的大括号;其他的则取决于expect 命令(用C 实现)来根据它的选择进行解释。 documentation 声明 if 大括号的内容是多行的,它们被解释为 (Tcl) 列表,这使它们几乎按照您所追求的方式工作。 (随着 Tcl 命令的运行,这非常奇怪,但 Expect 已经以这种方式工作了几十年,所以它不会改变。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-07
    • 2014-11-06
    • 1970-01-01
    • 2015-03-04
    • 2018-10-08
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    相关资源
    最近更新 更多