파이프 소비자의 읽기 루프를 끊는 방법

파이프 소비자의 읽기 루프를 끊는 방법

이 미니 스크립트가 있습니다.

#!/usr/bin/env bash


do_tests(){
  # todo
}


go run . | (
    while read line; do
      if [[ "$line" == "listening" ]]; then
        do_tests  # run this once!
        break;
      fi
    done
)

내가 원하는 것은 일치하는 행이 여러 개인 경우 테스트를 1x 이상 실행하지 않도록 부울을 뒤집는 것입니다.

이것이 내가 생각할 수 있는 유일한 방법이다:

go run . | (

    while read line; do
      if [[ "$line" == "listening" ]]; then
        do_tests 
        break;
      fi
    done

    cat # run cat here
)

다른 방법이 있나요?

관련 정보