Попытка использовать Expect для получения длинной последовательности входа в систему от нескольких порождений telnet - PullRequest
0 голосов
/ 01 февраля 2019

В Expect, если я запустил несколько порожденных сеансов telnet на сетевых узлах, а затем отправляю пользователя / pw в цикле всем им, для завершения которого требуется ~ 10 секунд (это локальный CLI, который очень медленно запускается)разве они не должны быть закончены более или менее в одно и то же время, если я выполняю команду «ожидаем» в отдельном цикле после цикла «отправлять»?

Первый цикл

while {[gets $nodelist node] != -1} {
    spawn telnet $node
    expect "login:" {send "user"}
    expect "word:" {send "pw"}
    lappend spawnlist $spawn_id
}

и в следующем цикле

for {set i 0} {$i < $nbrOfSpawns} {incr i 1} {
    set spawn_id [lindex $spawnlist $i]
    expect "$prompt"
}

Это не работает для меня, как я надеялся, инициация CLI не начинается, пока каждыйspawn_id активен во втором цикле, поэтому мне все еще приходится ждать каждого из них.Я что-то упустил или это так работает?

С уважением, Олле

...