出力が返されないとすぐに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
ループを使用する非常に人工的な方法です。