【发布时间】:2020-04-15 11:45:29
【问题描述】:
我正在尝试使用 expect 获取服务器的编号 我尝试了以下两种方法,但都不起作用,有人有解决方案吗?
expect -re {([0-9]*), Name: $server}
expect -re {([0-9]*), Name: \$server}
【问题讨论】:
我正在尝试使用 expect 获取服务器的编号 我尝试了以下两种方法,但都不起作用,有人有解决方案吗?
expect -re {([0-9]*), Name: $server}
expect -re {([0-9]*), Name: \$server}
【问题讨论】:
Expect 是tcl 的扩展,Tcl 使用大括号进行引用而不进行插值(就像 shell 使用单引号的方式一样)。为了允许变量扩展,您需要使用双引号。然而双引号也允许命令替换,Tcl 使用方括号来代替。你需要这样做:
expect -re "(\[0-9]*), Name $server"
但您不需要对数字使用正则表达式括号:
expect -re "(\\d*), Name $server"
由于使用双引号,反斜杠加倍。
【讨论】: