파일에서 특정 텍스트를 확인하고 종료합니다.

파일에서 특정 텍스트를 확인하고 종료합니다.

특정 문자열이 최종적으로 로그 파일에 기록되면 깔끔하게 종료되는 명령을 작성하려고 합니다.

다음을 시도했지만 결코 종료되지 않습니다.

설정: 명령을 테스트하기 위한 파일을 만듭니다.

echo "Build completed." > build.log

시도해 보았습니다. 작동하지 않으며 명령이 종료되지 않습니다.

tail -fn+0 build.log | grep -qe "completed"
tail -fn+0 build.log | grep --line-buffered -qe "completed"

이것은 작동하지만 복잡하므로 아직 관용적인 해결책을 찾지 못했다고 믿게 됩니다.

while true; do awk '/completed/{f=1; exit} END{exit !f}' && break; sleep 1; done < build.log

macOS 벤츄라 13.0,zsh

관련 정보