특정 데이터를 무한정 생성하는 명령을 명령줄에서 실행하고 있는데, 특정 비트의 데이터를 찾고 있어서 grep
찾아보곤 했습니다. 데이터를 얻은 후에는 명령이 자동으로 종료되기를 원합니다. 어떻게 이를 달성할 수 있나요?
참고 1:kill $$
AND 연산은 grep
명령을 종료하지 않습니다.
노트 2:나는 이것을 보았다질문, 내 경우에는 작동하지 않는 것 같습니다.
답변1
이 시도
loud_program | grep --max-count=NUM
그런 다음, 내가 아는 한, 연결이 끊긴 끝에 쓰기를 하는 loud_program
수신이 차례로 종료될 수 있습니다 . 귀하의 프로그램에서 시도해 보십시오. 이것이 모든 프로그램에서 작동하는지 확실하지 않습니다.SIGPIPE
loud_program
답변2
예를 들어 결과를 호출기로 파이프할 수 있습니다 less
. 입력 less
버퍼는 명령이 너무 많은 데이터를 생성하는 것을 방지하고(즉, 더 아래로 내려갈 때까지 어느 시점에서 차단됨) 호출기를 종료하면 명령이 다음과 같이 됩니다. 파이프 손상으로 인해 손상되었으며 자동으로 종료됩니다. 어떤 이유로든 데이터가 생성되지 않아 (파이프라인된) 명령이 계속 실행 중인 경우 Ctrl-C를 입력하여 명령을 종료할 수 있습니다.