[1. 개요]
리눅스 환경에서 표준 출력, 표준 에러의 리다이렉션을 정리 한다.
[2. 예제 코드]
컴파일
$ g++ -o main redirection.cpp
[3. 리다이렉션 예제 및 출력]
명령어 | 출력 |
./main | empty This is stdout empty This is stderr |
./main > mylog 2>&1 && cat mylog | empty This is stdout empty This is stderr |
./main > mylog 2>&1 && ./main >> mylog 2>&1 && cat mylog | empty This is stdout empty This is stderr empty This is stdout empty This is stderr |
./main > /dev/null 2>mylog && ./main > /dev/null 2>>mylog && cat mylog | empty This is stderr empty This is stderr |
./main > mylog 2>/dev/null && ./main >> mylog 2>/dev/null && cat mylog | empty This is stdout empty This is stdout |
./main > mylog 2> mylog && cat mylog | empty This is stderr |
./main > mylog 2 > mylog && cat mylog | 2 This is stderr 2 This is stdout |
※ 주의사항
- stderr (2) 를 redirection 할 때는 공백이 있어서는 안된다.
=> 마지막 예제와 같이 공백이 있을 경우, 기대와 다른 결과가 나올 수 있다. - 2>&1 의미는 stderr (2) 를 stdout (1) 과 같은 곳으로 리다이렉션 한다는 의미이다.
- 표준 출력을 버리는 경우, 표준 에러를 리다이렉션 할 떄 >> 기호를 사용 할 수 있다.
'리눅스' 카테고리의 다른 글
CentOS 7 Python3 & pip install (0) | 2021.10.26 |
---|