使用正则表达式在期望响应中搜索变量
search for variable in expect response using regex
我正在尝试使用 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"
由于使用双引号,反斜杠加倍。
我正在尝试使用 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"
由于使用双引号,反斜杠加倍。