Bash에서 stderr을 stdout으로 리디렉션하는 방법

How Redirect Stderr Stdout Bash



Linux의 명령은 파일이나 속성이 될 수 있는 사용자로부터 일부 입력을 받고 실행 시 표준 출력이라는 출력을 제공합니다. 표준 출력은 성공 출력 또는 오류 출력일 수 있습니다. 둘 다 터미널 화면에 표시됩니다. 그러나 어떤 경우에는 코드를 테스트하거나 디버깅하기 위해 표준 출력을 파일에 저장하려고 합니다. Linux에서 이러한 출력은 파일로 리디렉션될 수 있으며 이를 캡처하는 프로세스를 리디렉션이라고 합니다.







Linux의 모든 프로세스는 stdin, stdout 및 stderr의 세 가지 데이터 스트림을 생성합니다.



  • 표준 입력 : 키보드를 통해 사용자로부터 입력을 받습니다.
  • 표준 출력 : 화면에 출력을 표시합니다.
  • 표준 오류 : 화면에 오류 정보를 표시합니다.

모든 데이터 스트림에는 숫자 ID가 있습니다.



숫자 ID 이름
0 표준 입력
1 표준 출력
2 표준 오류

리디렉션에 대해 좀 더 자세히 설명하겠습니다.





Bash에서 표준 출력 및 표준 오류를 리디렉션하는 방법:

명령의 표준 출력을 리디렉션하려면 > 기호보다 큰 리디렉션 연산자와 함께 1을 사용합니다.

$ 1>stdout.txt

위의 명령은 파일을 만들고 ls 명령의 표준 출력을 stdout.txt 파일에 넣습니다.



stdout.txt 파일을 읽으려면 다음을 사용하십시오.

$고양이stdout.txt

다음 명령을 사용하여 표준 오류를 파일로 리디렉션할 수도 있습니다.

$고양이myfile.txt2>stderr.txt

stderr.txt 파일을 보려면 다음을 사용하십시오.

$고양이stderr.txt

사용 2가 > 기호보다 큰지 확인하십시오. 디렉토리에 myfile.txt 파일이 없기 때문에 cat 명령은 stderr.txt 파일에 추가될 오류를 제공합니다.

이러한 표준 출력은 단일 명령으로도 리디렉션할 수 있습니다.

$ 1>stdout.txt2>stderr.txt

ls 명령의 출력은 stdout.txt 파일이지만 stderr.txt 오류가 없기 때문에 비어 있습니다.

이제 stderr.txt에 대해 수행해 보겠습니다.

$고양이myfile.txt1>stdout.txt2>stderr.txt

아래에 언급된 명령을 사용하여 stderr.txt를 읽으십시오.

$고양이stderr.txt

물론 stdout.txt는 비어 있습니다.

결론 :

실행 시 Linux 명령은 성공 출력 또는 오류 출력이 될 수 있는 표준 출력을 제공합니다. 일반적으로 이러한 출력은 리디렉션 연산자를 사용하여 리디렉션할 수 없습니다. > 기호와 함께 특정 숫자 ID를 사용해야 합니다. 이 가이드에서는 이러한 숫자 키를 사용하여 표준 출력을 예제가 있는 파일로 리디렉션하는 방법을 배웠습니다.