Сценарий оболочки принудительно останавливается без ожидания кода выхода

1179
PinoyPal

Я написал сценарий оболочки 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потому что я вызываю сценарий из execвстроенной функции PHP и всегда жду кода выхода, но сценарий не возвращает код выхода.

0
Вы написали `exit 1` или код выхода, который вы хотите, в` function echo_failure`? Hastur 9 лет назад 0

1 ответ на вопрос

0
Gavyn

How about testing each line of the command output?

#!/bin/bash while read -r line; do echo "$line" if [[ "$line" == "TEST" ]]; then exit fi done < <(cat testfile) 

The above reads the output from a given command (in this case "cat testfile"), then echos the result. It checks for a line that equals "TEST" and exits if it finds a match.

Похожие вопросы