Server Management/LInux Server

표준 입출력/ 에러 출력 결정

BAGE 2009. 2. 4. 10:46
출처:  http://unix.co.kr/bbs/board.php?bo_table=03_4&wr_id=925


표준 에러 출력(stderr) 재지정(>&, 2>)
http://radiocom.kunsan.ac.kr
표준에러(stderr) 재지정
유닉스 쉘에서는 표준 입력(stdin), 표준 출력(stdout), 표준 에러 출력(stderr)로 이미 정해진 파일이나 장치로 지정되어 있다. 유닉스 쉘에서 표준으로 지정된 에러출력(/dev/null)를 다른 파일이나 장치로 다시 지정하는 것을 재지정(redirection)이라 하며, 이렇게 방향을 재지정함으로써, 어떤 명령이 실행되는 과정에서 발생하는 오류 메시지를 모니터가 아닌 지정한 파일 따위에 저장하므으로써 에러를 정확하게 분석할 때 유용하게 사용할 수 있다.

재지정구분 연산자 의미 사용예의 의미
출력 > write % 명령수행 > 기록할 파일이름
>> append % 명령수행 >> 추가할 파일이름
입력 < read % 명령수행 < 읽어올 파일이름
에러출력 2> sh,ksh,bash $ 명령수행 2> 기록할 오류파일이름
>& csh % 명령수행 >& 기록할 오류파일이름

기본적으로 stdin, stdout, stderr를 위해 오픈 되는 파일은 /dev/tty, 즉 자신의 터미널의 이름이다.
기본이 터미널이므로 사용자들은 프로그램에게 어디에서 읽고 어디에 쓰라고 지정할 필요가 없다.

모든 쉘들은 stdin, stdout, stderr에 대한 기본적인 리다이렉션을 제공한다. 다만 Bourne 쉘은 추가로 파일 기술어 번호를 3에서 9까지 다룰 수 있다.