我需要使用 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 似乎是一种黑魔法。提前感谢任何人对此事提供帮助!