题
我正在运行的应用程序,它会提示约十几次用户的密码:-( 我试着用希望来规避这一问题,并使它在自动模式下运行,但我无法拿到过多次密码,这是不完全静态的问题。有时它要求4-5倍和大约在9-10倍。
有没有更好的解决问题的办法比我有如下:
spawn myApp [lindex $argv 0]
expect " password: $"
send "$password\r"
expect {
" password: $" send "$password\r"
"^Rollout Done "
"^Rollout Updated "
}
使用上述方案中,我只能够赶上密码两次,然后手动启动输入为的其余时间,是否有可能的环路与所述密码?
解决方案
中查找 exp_continue 命令 - 它防止电流[expect]
命令从返回,因此它可以发现任何后续密码提示。
spawn myApp [lindex $argv 0]
expect {
-re { password: $} {
send "$password\r"
exp_continue
}
-re {^Rollout (?:Done|Updated) }
}
如果您希望用户输入密码,而不是明文将其存储在脚本中,看到的我怎样才能使一个期望脚本提示输入密码?
其他提示
预计可使用循环 - 它只是TCL增加了一些命令我相信。所以只是做
set found 0
while {$found < 1}
{
expect {
" password: $" send "$password\r"
"^Rollout Done " set found 1
"^Rollout Updated " set found 1
}
}
不隶属于 StackOverflow