Uma simplificação seria eliminar o loop de while
com bugs e lento, o que também liberaria stdin
a ser usado para interact
. Ou seja, o arquivo de entrada seria transmitido e lido pelo código TCL no script expect
.
#!/usr/bin/expect
if {[llength $argv] != 1} {
puts stderr "Usage: $0 iplist-file"
exit 1
}
set ipfh [open [lindex $argv 0]]
while {[gets $ipfh ip] >= 0} {
spawn ssh root@$ip dmidecode
expect "Password:"
send "Hunter2\r";
interact
}