grep output of expect script
12,980
You can capture the output and parse it within expect
#!/usr/bin/expect -f
# connect to vplexcli
spawn vplexcli
# Look for login prompt
expect -re "Name:"
# Send login
send "service\r"
# Look for password prompt
expect -re "Password:"
# Send password
send "letmein123\r"
expect -re "VPlexcli:/> "
send "ll /clusters/cluster-1/storage-elements/\r"
expect -re "(.*)VPlexcli:/> "
foreach line [split $expect_out(1,string) \n] {
if {[string match *error* $line]} {
puts $line
}
}
send "exit\r"
expect eof
Related videos on Youtube
Author by
LVLAaron
Updated on September 18, 2022Comments
-
LVLAaron almost 2 years
I'm trying to run some expect language, and grep/parse the output all in one script. I want to grep the output of and look for "error" (I should note that standard linux commands like awk, sed, grep, etc are not available on the remote VPlexcli machine)
#!/bin/bash expect - << EOF # connect to vplexcli spawn vplexcli # Look for login prompt expect -re "Name:" # Send login send "service\r" # Look for password prompt expect -re "Password:" # Send password send "letmein123\r" expect -re "VPlexcli:/> " send "ll /clusters/cluster-1/storage-elements/\r" expect -re "VPlexcli:/> " send "exit\r" EOF
Output looks like this:
VPD83T3:6006016036c02c00e217465c0516e211 ok APM00121002844.SPA APM00121002844.SPB both 0x002e000000000000 implicit-explicit VPD83T3:6006016036c02c00e4dc0671f907e211 ok APM00121002844.SPA APM00121002844.SPB both 0x0010000000000000 implicit-explicit VPD83T3:6006016036c02c00ec79619bdd08e211 error APM00121002844.SPA APM00121002844.SPB none implicit-explicit VPD83T3:6006016036c02c00f0bfd3dedd08e211 error APM00121002844.SPA APM00121002844.SPB none implicit-explicit
-
Angel Todorov over 11 yearsPlease show some typical output from the expect program
-
angus over 11 yearsgrep "error"... and then what? Note that you can
expect
the string "error" in your expect script, andexit
with an error code if matched. -
LVLAaron over 11 yearsI just want a list returned to me with items on the "error" lines. VPD83T3:6006016036c02c00f0bfd3dedd08e211
-