如何退出 while 循环

如何退出 while 循环

我试图在 while 循环没有返回输出时立即退出。

因此,如果我正在监视(使用 while 循环)更改的命令的输出,那么一旦我正在监视的字符串不再存在,如何退出循环。 (假设“purple”从下面示例中的输出字符串中消失)

$ while :; do clear;  "is_purple_present_monitoring_script" | grep purple  ; sleep 15; done

答案1

使用break陈述:

while :; do
    clear;
    if ! "is_purple_present_monitoring_script" | grep purple; then 
        break
    fi;
    sleep 15;
done

答案2

它是条件列表中的最后一个命令,用于确定while循环何时退出。

while
  clear
  "is_purple_present_monitoring_script" | grep purple
do
  sleep 15
done

您可以将条件移至操作列表并break在那里使用(并使用trueor:作为条件列表),如下所示:

while
  true
do
  clear
  "is_purple_present_monitoring_script" | grep purple || break
  sleep 15
done

但这是一种非常人为的使用while循环的方式。

相关内容