问题
#!/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
How can I prevent expect to expand the glob *
in pass*
? This is just an example. In my actual code, I want to keep the glob, but I don't want to at -ex
, which stands for exact match, or -re
option for regex.
回答1:
If you want a glob-style match, use the -gl
option before it:
expect {
-gl -nocase "pass*" {
# Do something...
}
}
回答2:
As you wrote to prevent from globing of *
use -ex
. By default -gl
is assumed. Or use -re
and escape *
as: \\*
.
来源:https://stackoverflow.com/questions/9630185/no-glob-expansion-without-re-option-in-expect