小编shu*_*ter的帖子

在'expect'中使用条件语句

我需要使用expect自动登录到TELNET会话,但我需要为同一个用户名处理多个密码.

这是我需要创建的流程:

  1. 打开到IP的TELNET会话
  2. 发送用户名
  3. 发送密码
  4. 密码错误?再次发送相同的用户名,然后输入不同的密码
  5. 此时应该已成功登录...

对于它的价值,这是我到目前为止所得到的:

#!/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"
Run Code Online (Sandbox Code Playgroud)

不用说这不起作用,也不是很漂亮.从我与谷歌的冒险预期似乎是暗艺术的东西.在此事先感谢任何人的帮助!

bash automation telnet expect conditional-statements

25
推荐指数
2
解决办法
6万
查看次数