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루프를 사용하는 매우 인위적인 방법입니다.

관련 정보