A força do script Shell pára sem esperar pelo código de saída

0

Eu escrevi um script de shell checklick.sh na minha caixa do CentOS com o seguinte conteúdo:

#!/bin/sh

#
# description: check link through rtmpdump
#

. /etc/rc.d/init.d/functions

DUMPUTIL=/usr/bin/rtmpdump
"$DUMPUTIL" -B 1 -r "$1" -o /tmp/rtmp-checker.log && echo_success || echo_failure

e executado por

./checklink.sh rtmp://tv2.globisoft.net/live/tv2

Agora, na seguinte saída:

Eu preciso saber como forçar a saída do script quando o log imprime ERROR: RTMP_ReadPacket, failed to read RTMP packet header porque estou chamando o script de PHP exec função nativa e está sempre aguardando o código de saída, mas o script não retorna a saída código.

    
por PinoyPal 19.11.2014 / 01:22

1 resposta

0

Que tal testar cada linha da saída do comando?

#!/bin/bash

while read -r line; do
  echo "$line"

  if [[ "$line" == "TEST" ]]; then
      exit
  fi
done < <(cat testfile)

O texto acima lê a saída de um dado comando (neste caso "cat testfile"), então ecoa o resultado. Ele verifica se há uma linha igual a "TEST" e sai se encontrar uma correspondência.

    
por 01.12.2014 / 17:24