특정 조건이 충족되면 무한히 실행되는 명령이 자동으로 종료되도록 하는 방법은 무엇입니까?

특정 조건이 충족되면 무한히 실행되는 명령이 자동으로 종료되도록 하는 방법은 무엇입니까?

특정 데이터를 무한정 생성하는 명령을 명령줄에서 실행하고 있는데, 특정 비트의 데이터를 찾고 있어서 grep찾아보곤 했습니다. 데이터를 얻은 후에는 명령이 자동으로 종료되기를 원합니다. 어떻게 이를 달성할 수 있나요?

참고 1:kill $$AND 연산은 grep명령을 종료하지 않습니다.

노트 2:나는 이것을 보았다질문, 내 경우에는 작동하지 않는 것 같습니다.

답변1

이 시도

loud_program | grep --max-count=NUM

그런 다음, 내가 아는 한, 연결이 끊긴 끝에 쓰기를 하는 loud_program수신이 차례로 종료될 수 있습니다 . 귀하의 프로그램에서 시도해 보십시오. 이것이 모든 프로그램에서 작동하는지 확실하지 않습니다.SIGPIPEloud_program

답변2

예를 들어 결과를 호출기로 파이프할 수 있습니다 less. 입력 less버퍼는 명령이 너무 많은 데이터를 생성하는 것을 방지하고(즉, 더 아래로 내려갈 때까지 어느 시점에서 차단됨) 호출기를 종료하면 명령이 다음과 같이 됩니다. 파이프 손상으로 인해 손상되었으며 자동으로 종료됩니다. 어떤 이유로든 데이터가 생성되지 않아 (파이프라인된) 명령이 계속 실행 중인 경우 Ctrl-C를 입력하여 명령을 종료할 수 있습니다.

관련 정보