首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多次输入密码

多次输入密码
EN

Stack Overflow用户
提问于 2009-06-03 17:23:09
回答 2查看 3.9K关注 0票数 0

我正在运行一个应用程序,它提示用户输入密码大约12次:-(我尝试使用expect来绕过这个问题,并使其在自动模式下运行,但无法克服多次密码的问题,这不是完全静态的。有时它会问4-5次,有时会问9-10次。

有没有比我下面给出的更好的解决方案:

代码语言:javascript
复制
spawn myApp [lindex $argv 0]
expect " password: $"
send "$password\r"
expect {
  " password: $"    send "$password\r"
  "^Rollout Done "
  "^Rollout Updated "
}

使用上面的解决方案,我只能捕获密码两次,然后在剩下的时间里手动开始输入,密码是否可能出现循环?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-03 22:06:48

查找exp_continue命令--它阻止当前的[expect]命令返回,因此它可以找到任何后续的密码提示。

代码语言:javascript
复制
spawn myApp [lindex $argv 0]
expect {
    -re { password: $} {
        send "$password\r"
        exp_continue
    }
    -re {^Rollout (?:Done|Updated) }
}

如果希望用户输入口令,而不是以纯文本形式存储在脚本中,请参见How can I make an expect script prompt for a password?

票数 3
EN

Stack Overflow用户

发布于 2009-06-03 18:32:18

Expect可以使用循环--我相信它只是带有一些附加命令的TCL。所以就这么做吧

代码语言:javascript
复制
set found 0
while {$found < 1}
{
expect {
 " password: $"    send "$password\r"
 "^Rollout Done "  set found 1
 "^Rollout Updated " set found 1
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/945998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档