Tcl Expect中没有-re选项则无法进行全局扩展

Tcl Expect中没有-re选项则无法进行全局扩展,tcl,expect,Tcl,Expect,如何防止在pass*中扩展glob*?这只是一个例子。在我的实际代码中,我想保留glob,但我不想保留代表精确匹配的-ex,也不想保留regex的-re选项。如果您想要glob样式的匹配,请在它前面使用-gl选项: #!/usr/bin/expect spawn passwd [lindex $argv 0] set password [lindex $argv 1] expect -nocase "pass*" { send "$password\r" } expect -n

如何防止在
pass*
中扩展glob
*
?这只是一个例子。在我的实际代码中,我想保留glob,但我不想保留代表精确匹配的
-ex
,也不想保留regex的
-re
选项。

如果您想要glob样式的匹配,请在它前面使用
-gl
选项:

#!/usr/bin/expect

spawn passwd [lindex $argv 0]
set password [lindex $argv 1]

expect -nocase "pass*" {
      send "$password\r"
}

expect -nocase "password" {
      send "$password\r"
}

expect eof

正如您为防止
*
的全球化而编写的一样,请使用
-ex
。默认情况下,假定为
-gl
。或者使用
-re
和escape
*
作为:
\\*

expect {
    -gl -nocase "pass*" {
        # Do something...
    }
}