Bash 터미널에서 Java 프로그램을 실행 중이고 OS X 10.8
그 프로그램이 생성하는 출력을 리디렉션하려고 합니다.
그러나 파이프를 통해 실행하거나 파일로 리디렉션하면 출력은 비어 있지만 터미널에는 출력이 표시됩니다.
이 점을 설명하려면 다음을 수행하십시오.
> java program.java
13/10/02 14:18:30 WARN some
13/10/02 14:18:30 INFO log
13/10/02 14:18:30 INFO messages
...
> java program.java > log
> cat log
>
stdout
다른 스트림에 쓰도록 Java 프로그램을 설정했지만 여전히 터미널에서 출력을 생성하는 것이 가능합니까 ? 그런 일이 가능합니까?
답변1
가지다삼각 프로그램에 대한 표준 파일 stdin
(표준 입력), stdout
(표준 출력) 및 stderr
(표준 오류)를 엽니다. 기본적으로 둘 다 터미널에 작성 stdout
되고 출력됩니다.stderr
stderr
로그나 오류 메시지가 실제 프로그램 출력과 혼합되지 않도록 대신 오류와 로그 메시지를 작성하는 것이 stdout
일반적인 규칙입니다 . 다음과 같은 stderr
리디렉션을 사용할 수 있습니다 2>
.
command 2> log