在 Bash 脚本中, continue 命令如何与嵌入循环一起使用?

在 Bash 脚本中, continue 命令如何与嵌入循环一起使用?

我正在 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.

因此,您想要continuecontinue 1进入 的下一次迭代until,或continue 2进入 的下一次迭代while

相关内容