我正在拖着这样的日志:
while [[ ! -n "${ready}" ]]; do
start_info=`grep "Ready" $LOG_FILE`
sleep 10
done
如果日志文件中没有“Ready”,那么这将永远持续下去,我怎么能让它运行200秒呢?像某种时间阈值。
由于
答案 0 :(得分:3)
这可以避免重复使用整个文件:
start=$SECONDS
limit=200
while read -r line
do
if [[ $line =~ $ready ]]
then
start_info=$line
break
fi
if (( $SECONDS >= start + limit ))
then
break
fi
done < "$LOG_FILE"
答案 1 :(得分:1)
如果我的问题正确(while [[ ! -n "${ready}" ]]; do
令人困惑),这里有一个如何检查时间阈值的示例:
#!/bin/sh
...
timelimit=200
pausetime=10
while [[ -z "${start_info}" ]]; do
start_info=`grep "Ready" $LOG_FILE`
sleep $pausetime
timelimit=$((timelimit - $pausetime))
if [ $timelimit -le 0 ]; then
break
fi
done