Posted to tcl by aspect at Thu Apr 02 23:42:52 GMT 2015view pretty

#!/usr/bin/expect -f
 
set timeout 30
spawn telnet {*}$argv
match_max 100000
 
# handle early disconnections
expect_after {
   eof {
      error "Unexpected end of file!"
   }
   timeout {
      error "Server took too long to respond!"
   }
}

# try multiple passwords:
set passwords {"Pass1" "" "Pass3" "Pass4"}
set idx -1
while {1} {
   incr idx
   if {$idx >= [llength $passwords]} {
      error "Failed to log in!"
   }
   expect {
      "word:" {
         send [lindex $passwords $idx]\n
      }
      -exact in$ {
         break
      }
   }
}
puts "Logged in with [lindex $passwords $idx]"

# login already expected a prompt
send "set ethernetDoSThrottleShutoff 1 1 1\r"
expect -exact in$
send "get ethernetDoSThrottleShutoff\r"
expect -exact in$
send "exit\r"
expect eof  ;# this bit is important!