grep output do script de espera

3

Estou tentando executar alguma linguagem esperada e grep / analisar a saída em um único script. Eu quero grep a saída de e procurar por "erro" (devo observar que os comandos padrão do Linux como awk, sed, grep, etc não estão disponíveis na máquina VPlexcli remoto)

#!/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

A saída é assim:

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
    
por LVLAaron 10.12.2012 / 16:32

2 respostas

1

Você pode capturar a saída e analisá-la dentro do esperado

#!/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
    
por 06.07.2013 / 17:57
0

É isso que você quer?

#!/bin/bash

(expect - << EOF

...

EOF
) | while read line; do if [[ "$line" =~ "error" ]]; then  echo $line; fi; done

Surpreso você não tem grep.

    
por 20.12.2012 / 16:21