我正在 busybox 会话中编写 bash 脚本。
该脚本必须以守护进程的形式按顺序多次启动外部可执行文件,然后监视输出。
while read LINE; do
VARIABLEPARAMETER=`echo "$LINE" | sed -e 's/appropriateregex(s)//'`
externalprog --daemonize -acton $VARIABLEPARAMETER -o /tmp/outputfile.txt
until [ "TRIGGERED" = "1" ]; do
WATCHOUTPUT=`tail -n30 /tmp/outputfile.txt`
TRIGGERED=`echo "$WATCHOUTPUT" | grep "keyword(s)"`
if [ -z "$TRIGGERED" ]; then
PROGID=`pgrep externalprog`
kill -2 "$PROGID"
continue
fi
done
done < /tmp/sourcedata.txt
我的问题是,将针对两个循环中的哪一个执行 continue 命令?
最初的 while read 行,还是后续的,until 触发?
请不要关注我将其放在一起作为示例来尝试解释这个问题的实际代码,实际代码要详细得多。
答案1
来自“帮助继续”:
continue: continue [n]
Resume for, while, or until loops.
Resumes the next iteration of the enclosing FOR, WHILE or UNTIL loop.
If N is specified, resumes the Nth enclosing loop.
Exit Status:
The exit status is 0 unless N is not greater than or equal to 1.
因此,您想要continue
或continue 1
进入 的下一次迭代until
,或continue 2
进入 的下一次迭代while
。