Linux 파이프 원리를 알아보자

By | 2017년 3월 23일

파이프 원리 이해하기

@@ curl 은 두개의 디스크립터가 나온다, 실제 URL요청후 받는 HTML과 속도 리포트를 하는 OUTPUT이다.
그러나 HTML과 OUTPUT의 디스크립터 번호가 다르다. HTML은 표준출력으로 1번 디스크립터로 쓰여지고
OUTPUT은 2번 디스크립터로 기록하게 된다. 따라서 다음과 같이 하게 되면 파이프를 2번 디스크립터로
받게 되어 정상 출력을 하게된다.

1. 먼저 1번 표준 출력을 2번 디스크립터로 던진다.
2. 2번 OUTPUT은 NULL로 던져 화면에 출력되지 않게 한다.

 

아래처럼 &-로 닫을 수도 있다.

 

# 파이프로 표준에러만 재지향 하기.

 

@ 아래의 경우는 3번 디스크립터를 연상태로 진행했다.

exec 2>/dev/null // 화면에 아무것도 안나옴
exec 2>&1 // 화면에 출력되기 시작함
@@ 여기까지 알수 있는 것은 화면에 출력되고 있는 디스크립터 대상은 2번이다.

@@ exec는 실행시킬 프로세스를 fork 시키지 않고 현재 shell에서 실행 시킨다.

 

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다