쉘 스크립트 문법에서 2>&1
글쓴이: jaejyn / 작성시간: 화, 2011/05/03 - 4:34오후
안녕하세요
쉘 스크립트를 공부하고 있는 노년의 직장인입니다
회사 서버에 있는 make 파일이 어떻게 돌아가고 있는지 보고있는데,
XXX.sh파일에 다음과 같은 문구가 있더라구요
make $@ 2>&1 | tee $(output)/$(build_log)
여기서 "2>&1" 이 문법이 의미하는 것은 무엇인가요?
또 제가 이 문법에 관해 더 자세히 공부하려면 어떤 싸이트가 도움이 될런지요?
고수님들의 많은 도움 부탁드립니다
Forums:
쉘에서 구현한 사항이므로 쉘 매뉴얼을 보시면
쉘에서 구현한 사항이므로 쉘 매뉴얼을 보시면 됩니다.
bash의 경우, http://www.gnu.org/software/bash/manual/bash.html#Redirections
2>&1의 설명도 바로 나와있습니다.
윗분이 리플도 달아주셨습니다만... 요즘
윗분이 리플도 달아주셨습니다만...
요즘 코딩관련(?) 글들이 없어서 심심하던 차라 리플달아 봅니다.
make를 하면 일반 출력은 stdout, 에러 메시지는 stderr 로 출력됩니다.
tee라는 명령은 stdin을 stdout과 대상 파일로 복제하는 것으로, 한마디로 make 결과물을 눈으로 보면서 파일로 저장하기 위한겁니다.
2>&1이 없으면 stdout만 tee의 입력이 되고 stderr로 나오는 에러메세지는 tee의 입력이 되지 않아서 tee가 만드는 파일에 에러메세지는 저장되지 않습니다.
요컨데 2>&1은 stderr을 stdout으로 돌려서 에러 메세지도 tee에 의해 저장되게 하라.. 뭐 그런 뜻입니다..
요즘 리눅스 코딩관련 글들이 없어서 심심합니다.
연봉이야기도 좋고, 신변 잡기도 좋은데... 역시 kldp는 이런 글도 있어야 한다는 느낌이 드네요...거의 유령회원이긴 합니다만....
같은 질문 반복해서 보는걸 싫어하실 분들도 있겠지만, 저는 이런 답변다는게 재밌습니다.. 변태라서 그런가.. -_-;;
좋은 댓글 잘봤습니다.
덕분에 이해가 한번에 되었어요ㅎㅎ
감사합니다
두 분 모두 큰 도움이 됐습니다^^
뒤늦게 리눅스를 시작하려니, 늦었다는 느낌이 많지만, 쉘 스크립트부터 하나 하나 분석해봐야겠습니다
앞으로 왠지 자주 여쭤보게 될것 같군요^^
댓글 달기