我需要使用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似乎是一种黑暗艺术。提前感谢任何人在此事上的帮助!