특정 문자열이 최종적으로 로그 파일에 기록되면 깔끔하게 종료되는 명령을 작성하려고 합니다.
다음을 시도했지만 결코 종료되지 않습니다.
설정: 명령을 테스트하기 위한 파일을 만듭니다.
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