Bash:
표준 에러에 쓰기

방법:

Bash에서는 >&2를 사용하여 출력을 stderr로 리다이렉션합니다. 기본 예는 다음과 같습니다:

echo "This is a normal message"
echo "이것은 에러 메시지입니다" >&2

이 스크립트를 실행하면 두 메시지 모두 콘솔에 표시되지만, 리다이렉션하면 stdout과 stderr을 분리할 수 있습니다. 예를 들어:

bash script.sh > output.txt 2> error.txt

output.txt"This is a normal message"를 포함하고, error.txt"이것은 에러 메시지입니다"를 캡처할 것입니다.

실용적인 사용 사례를 고려해보면, 파일을 처리하고 파일이 존재하지 않으면 에러를 보고하는 스크립트입니다:

filename="example.txt"

if [ ! -f "$filename" ]; then
    echo "$filename does not exist!" >&2
    exit 1
else
    echo "Processing $filename"
fi

example.txt가 존재하지 않을 때 콘솔에서 직접적인 샘플 출력:

example.txt does not exist!

Bash에서 stderr를 처리하기 위한 직접적인 제3자 라이브러리는 없으며, 리다이렉션이 기본적으로 지원되어 일반적으로 충분합니다. 그러나 복잡한 애플리케이션의 경우, stdout과 stderr를 더 효과적으로 관리하기 위해 로깅 프레임워크나 외부 로깅 도구인 syslog 또는 log4bash와 같은 것을 도입할 수 있습니다.