Bash에서 stderr로 에코

MD Aminul Islam 2023년6월20일
Bash에서 stderr로 에코

기본 오류 메시지 변수 내장 Bash 스크립트는 stderr로 알려져 있습니다. 오류에 대한 기본 출력 장치인 표준 오류라고도 합니다.

때로는 오류를 출력 채널로 리디렉션해야 합니다. Linux 환경은 FD라는 설명으로 모든 파일 개체를 식별합니다.

열린 파일 세션을 식별하는 양의 정수 값입니다. stderr의 경우 파일 설명자의 값은 2입니다.

이 기사에서는 stderr와 그 기능에 대해 알아봅니다. 또한 주제를 더 쉽게 만들어 줄 몇 가지 예를 살펴보겠습니다.

Bash에서 stderr로 반향

stderr 명령은 주로 명령을 실행하는 동안 오류 기록을 유지하는 데 사용됩니다. 이 명령의 일반 구문은 다음과 같습니다.

Your command here 2>error.log

위에서 공유한 샘플 구문에서 2> 기호와 error.log라는 파일을 찾을 수 있습니다. 이제 2>stderr의 ID를 나타내는 FILE DESCRIPTOR의 값을 나타냅니다.

이 경우 FILE DESCRIPTOR의 값은 2입니다. 이제 우리가 제공한 파일 이름은 명령 실행 중에 생성된 로그 파일용입니다.

아래 구문 형식에 따라 stderr 메시지를 echo할 수도 있습니다.

Your command here >&2 echo "error"

주제를 더 쉽게 만들기 위해 예제를 살펴보겠습니다. 오류 명령을 생성했고 출력 오류 메시지를 반향하고 싶다고 가정합니다.

이제 예제 코드는 다음과 같습니다.

echo $( 3 + 2 )) >&2 echo "error"

위에서 공유한 코드에서 작동 방식을 이해하기 위해 의도적으로 오류를 만들었습니다. 여기에서 대괄호 중 하나를 제거했으므로 이는 오류일 수 있습니다.

그런 다음 echo로 해당 오류를 표시합니다. 위의 코드를 실행하면 아래와 같은 출력이 표시됩니다.

./example.sh: line 1: syntax error near unexpected token `)'
./example.sh: line 1: `echo $( 3 + 2 )) >&2 echo "error" '

이제 아래와 같이 코드를 수정하고 명령을 다시 실행합니다.

echo $(( 3 + 2 )) >&2 "No error has been found."

코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다.

5 No error has been found.

이 기사에서 사용된 모든 코드는 Bash로 작성되었습니다. Linux Shell 환경에서만 작동합니다.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

관련 문장 - Bash Echo