[linux] 표준출력(STDOUT), 표준에러(STDERR), /dev/null
-
xmoon
(xmoon) - 이 글의 작성자
- Offline
- Newbie
덜보기
더보기
- Posts: 6
- Thank you received: 3
04 Sep 2016 17:29 - 04 Sep 2016 17:30 #1178
작성자: xmoon
xmoon 님의 글: [linux] 표준출력(STDOUT), 표준에러(STDERR), /dev/null
Unix나 Linux 명령어를 사용하다 보면 표준출력, 표준에러, /dev/null 등을 사용한 shell이 많이 있습니다
이에 대해 간단히 정리합니다 ~
. 표준출력 : shell에서 실행시 정상 종료시의 메시지로 화면에 출력됨, 파일 디스크립터는 1번
. 표준에러 : shell에서 실행시 발생한 에러 메시지로 화면에 출력됨. 파일 디스크립터는 2번
. /dev/ull : 출력이 파기되어, 아무것도 출력이 되지 않음. (쓰레기통으로 표현됨)
. 2>&1 : 2(표준에러)를 1(표준출력)으로 보내라.
. >/dev/null 2>&1 : 앞에 1이 생략 (1>/dev/null 2>&1) → 표준출력,표준에러 다 버려라.
(예제)
. 표준출력. 표준에러. /dev/null에 출력
(좀더 자세한 예제 : sample.sh)
. 실행경과
이에 대해 간단히 정리합니다 ~
. 표준출력 : shell에서 실행시 정상 종료시의 메시지로 화면에 출력됨, 파일 디스크립터는 1번
. 표준에러 : shell에서 실행시 발생한 에러 메시지로 화면에 출력됨. 파일 디스크립터는 2번
. /dev/ull : 출력이 파기되어, 아무것도 출력이 되지 않음. (쓰레기통으로 표현됨)
. 2>&1 : 2(표준에러)를 1(표준출력)으로 보내라.
. >/dev/null 2>&1 : 앞에 1이 생략 (1>/dev/null 2>&1) → 표준출력,표준에러 다 버려라.
(예제)
. 표준출력
$ echo sample
sample
$ ls error
ls: cannot access error: No such file or directory
$ echo sample >& /dev/null
→ 아무것도 일어나지 않음
$ ls error >&/dev/null
→ 아무것도 일어나지 않음
(좀더 자세한 예제 : sample.sh)
#!/bin/bash
# STDOUT(1)으로 표시
echo "STDOUT(1)"
# STDERR(2)로 표시
# 표준에러러(1→2)로 리다이렉트시켜 출력
echo "STDERR(2)" 1>&2
exit 0
. 실행경과
# 1(표준출력) 를 /dev/null로 보냄으로서, 2(표준에러)만 출력
$ ./sample.sh 1>/dev/null
STDERR(2)
# 2(표준에러) 를 /dev/null로 보냄으로서, 1(표준출력)만 출력
$ ./sample.sh 2>/dev/null
STDOUT(1)
Time to create page: 0.052 seconds