В итоге я использовал mstream , который удовлетворил всем моим требованиям. Настройка через интерфейс командной строки заняла менее 5 минут. Работала прелесть.
возможно что-то вроде этого:
spawn telnet my_host
expect UserName
send "admin\r"
set passwords [list foo bar baz]
set connected false
foreach pw $passwords {
expect PassWord
send -- "$pw\r"
# change the "invalid password" pattern to whatever you need it to be.
expect {
"invalid password" {continue}
-re "#" {
set connected true
break
}
}
}
if {! $connected} {
error "no password succeeded"
}
send "logout\r"
expect eof