Я написал сценарий оболочки checklick.sh на моем компьютере CentOS со следующим содержимым:

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

и выполнен

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

Теперь из следующего вывода:

Мне нужно знать, как принудительно завершить работу сценария, когда журнал печатает ERROR: RTMP_ReadPacket, failed to read RTMP packet header потому что я вызываю сценарий из встроенной функции PHP exec и постоянно ожидает код выхода, но сценарий не возвращает код выхода.

1 ответ1

0

Как насчет тестирования каждой строки вывода команды?

#!/bin/bash

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

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

Выше читается вывод данной команды (в данном случае "cat testfile"), затем выводится результат. Он проверяет строку, равную "ТЕСТ", и завершает работу, если находит совпадение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .