我在我的 CentOS 机器上写了一个 shell 脚本checklick.sh
,内容如下:
#!/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
如何测试命令输出的每一行?
#!/bin/bash
while read -r line; do
echo "$line"
if [[ "$line" == "TEST" ]]; then
exit
fi
done < <(cat testfile)
上面的代码读取给定命令的输出(本例中为“cat testfile”),然后回显结果。它会检查是否有一行等于“TEST”,如果找到匹配项,则退出。