【发布时间】:2010-12-05 00:54:32
【问题描述】:
我需要使用 expect 自动登录到 TELNET 会话,但我需要注意同一用户名的多个密码。
这是我需要创建的流程:
- 打开到 IP 的 TELNET 会话
- 发送用户名
- 发送密码
- 密码错误?再次发送相同的用户名,然后发送不同的密码
- 此时应该已经成功登录...
对于它的价值,这是我到目前为止所得到的:
#!/usr/bin/expect
spawn telnet 192.168.40.100
expect "login:"
send "spongebob\r"
expect "password:"
send "squarepants\r"
expect "login incorrect" {
expect "login:"
send "spongebob\r"
expect "password:"
send "rhombuspants\r"
}
expect "prompt\>" {
send_user "success!\r"
}
send "blah...blah...blah\r"
不用说这不起作用,而且看起来也不是很漂亮。从我与 Google 的冒险经历来看,expect 似乎是一种黑暗艺术。在此先感谢任何人在此问题上提供帮助!
【问题讨论】:
-
我在回答中添加了更多信息。
标签: bash automation telnet expect conditional-statements