我一直面临着一个非常特殊的 shell 脚本问题。
这是场景
Script1(在后台生成)--> Script2
Script2 有以下代码
function check_log()
{
logfile=$1
tail -5f ${logfile} | while read line
do
echo $line
if echo $line|grep "${triggerword}";then
echo "Logout completion detected"
start_leaks_detection
triggerwordfound=true
echo "Leaks detection complete"
fi
if $triggerwordfound;then
echo "Trigger word found and processing complete.Exiting"
break
fi
done
echo "Outside loop"
exit 0
}
check_log "/tmp/somefile.log" "Logout detected"
现在,while 循环的中断在这里没有帮助。我可以看到“检测到注销完成”以及“泄漏检测完成”在标准输出上回显,但不是字符串“外部循环”
我假设这与tail -f
创建子外壳有关。我想要做的是,退出该子外壳并退出 Script2 以将控制权返回给 Script1。
有人可以说明如何做到这一点吗?