whileループを終了する方法

whileループを終了する方法

出力が返されないとすぐにwhileループを終了しようとしています。

したがって、変更されたコマンドの出力を監視(whileループを使用)する場合、監視中の文字列がもう存在しない場合はループをどのように終了しますか? (以下の例では、出力文字列から「紫」が消えているとします。)

$ 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使用できます(条件リストにtrueまたはを使用)。:

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

しかし、これはwhileループを使用する非常に人工的な方法です。

関連情報