| |||||||||||
Detecting end of spawn output Posted by gbromley (gbromley), 28 June 2007 Having trouble with a large output response from a router so switched from upping buffers/timeouts to reading in line by line, however the script gets caught I guess waiting for output from the router when now is comingScript portion expect "\n" while {[regexp {\ } $expect_out(buffer)]} { if {[regexp {Internet} $expect_out(buffer)]} { # We have an IP to ARP mapping set line $expect_out(buffer) if {[regexp {Incomplete} $line]} { # Unfortunately its a dead one } else { # Its a live one, so remove the whitespace and comma delimit it regsub -all {[\ ]+} $line "," temp set output [split $temp {,}] set ipaddress [lindex $output 1] set macaddress [lindex $output 3] puts $ipaddress,$macaddress } } expect { "\n" { continue } default { break } } } Posted by gbromley (gbromley), 28 June 2007 Sorted it, last line of output is without a "\n" but does contain a cmd prompt > so I've adjusted the expect test to be:expect { "\n" { continue } ">" { break } default { break } } Posted by admin (Graham Ellis), 28 June 2007 Welcome ... and glad you're sorted!Graham This page is a thread posted to the opentalk forum
at www.opentalk.org.uk and
archived here for reference. To jump to the archive index please
follow this link.
|
Other Forum Posts Follow us on ... | ||||||||||
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho |