configure script 파일중에서 >&2 는 어떤걸 의미하나요?!

parkys1의 이미지

echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1;

1>&2라는게 있는데요...

> 이것이 redirection이라는것은 알겠습니다...

헌데 1>&2는 무슨 뜻이죠?!

고수님들 부탁드립니다~~~

echo "configure:610: checking whether ${MAKE-make} sets \${MAKE}" >&5

중간에보니 이런것도 있군요... >&5 라.. 어떤 의미인지... 어디다 문자를 출력해 주는거 같긴한데.. 도통모르겠습니다..

dormael의 이미지

http://www.gnu.org/software/bash/manual/bashref.html#SEC37

에 꽤 상세하게 나와 있습니다.

아마 질문하신건 표준출력을 표준에러로 리다이렉션 하는게 아닐까 생각됩니다.

5는 뭔지 저도 잘 모르겠네요.

-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.

sunyzero의 이미지

shell script 에서 "&숫자" 는 파일기술자(file descriptor)를 의미합니다.
위에 dormael 께서 언급하신 대로 2번은 stderr 이미 표준에러가 맞습니다.

즉 &5 는 5번 파일기술자입니다.
고급 쉘 스크립트에서는 여러 파일을 다룰때 이렇게 기술자로 열어서 읽고/쓰는 경우가 꽤 있습니다.
========================================
* 부분이 전체를 대변하는 하나의 속성일때 진리이다.
영속적이지 못한 것은 전체가 될 수 없다.

========================================
* The truth will set you free.

flyingykk의 이미지

저도 궁금해서 찾아보니

exec 5> filename

등의 명령으로 파일 디스크립터를 특정 파일에 할당할 수 있다고 나오네요. 따라서 '>&5'는 파일 디스크립터 5번을 할당받은 파일에 쓰라는 리디렉션 같습니다.

마잇의 이미지

0 - 표준 입력
1 - 표준 출력
2 - 표준 오류

>& - 이건 복제 연산자 입니다.

1>&2

표준 출력을 표준 오류쪽으로 돌려서 같이 출력하려는 것 같습니다.

>&5 - 1>&5 와 같은 표현 입니다. 좌측 기본값으로 표준 출력이 사용됩니다.

표준 출력을 5번 파일 디스크립터로 돌리겠다는 의미 같은데 5번 디스크립터가 어디를 의미하는지는 소스를 앞뒤로 뒤져보면 나올것 같습니다.

자세한 내용은 dormael님이 올려주신 링크를 한 번 훑어 보시면 될 겁니다. 간결하게 잘 나와 있습니다.
--
마잇


--
마잇

익명사용자의 이미지

이번에 확실히 알겠네요 ㅎㅎㅎ
모두 복 받으실겁니다 ^^