'예'와 같은 끝없는 명령을 어떻게 전송할 수 있습니까?

'예'와 같은 끝없는 명령을 어떻게 전송할 수 있습니까?

내가 아는 한, 명령을 A명령에 파이프하면 B실행되고 A출력이 B입력으로 사용됩니다. 예를 들어 일부 명령은 무한하지만 yes이러한 명령의 실행 시간은 해당 명령을 중단할 때까지입니다. 배관 작업은 어떻게 되나요?

예: yes | sudo dnf install pkg

답변1

명령 A는 끝없는 출력을 생성할 수 있지만 명령 B는 제한된 양의 출력만 읽습니다. 명령 B가 종료되면(또는 해당 입력 파일 설명자를 닫으면) 파이프가 삭제됩니다.

그 후 명령 A에서 파이프로 쓰기를 수행하면 커널이 SIGPIPE명령 A에 신호를 보냅니다. 기본 작업은 SIGPIPE프로세스를 종료하는 것입니다.

관련 정보