출력이 반환되지 않는 즉시 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
루프를 사용하는 매우 인위적인 방법입니다.