파일로 리디렉션하고 tee를 사용하는 방법을 알고 있습니다. 기본 수준에서. 그래서
$ alias outanderr='bash -c "echo stdout >&1; echo stderr >&2"'
# A fake "application" displaying both output and error messages.
$ outanderr 1>file # redirect stdout to a file, display stderr
stderr
$ outanderr 2>file # redirect stderr to a file, display stdout
stdout
$ outanderr 1>file 2>&1 # redirect both to a file, display nothing
$ outanderr | tee file; echo "-- file contents --" && cat file
# redirect stdout to a file, display both (note: order is messed up)
stderr
stdout
-- file contents --
stdout
$ outanderr 2>&1 | tee file; echo "-- file contents --" && cat file
# redirect both to a file, display both
stdout
stderr
-- file contents --
stdout
stderr
문제는 다음과 같은 결과를 얻기 위해 물음표 대신 무엇을 작성해야 하는가입니다.
$ outanderr ???; echo "-- file contents --" && cat file
# redirect both to a file, display stderr
stderr
-- file contents --
stdout
stderr
포함 :
- bash를 가정합니다.
- 순서는 파일에 보관해야합니다.
- stderr 내용은 실시간으로 표시됩니다 (즉, 버퍼링 없음).
- 별도의 스크립트 파일을 사용할 수 있습니다.
- 마술이 필요할 수 있습니다.
@ 케빈 나는 그 질문이 그보다 더 일반적인 것이라고 생각합니다. 여기,
—
lgeorget 2016 년
outanderr
행을 stdout에 인쇄하고 다른 것을 stderr에 인쇄하는 별명입니다. 가능한 경우 아이디어는 수정하지 않고도 모든 프로그램에서 작동 할 수있는 일반적인 솔루션을 구축하는 것입니다.
@lgeorget 나는 그것을 이해하지만 일반적인 솔루션의 모든 제약 조건을 엄격하게 충족 할 수는 없다고 생각하므로 특정 조건을 얻을 수 있는지 보았습니다.
—
케빈
@Igeorget가 맞습니다.
—
TWiStErRob 2016 년
outanderr
프로그램의 제어권은 어느 정도 입니까?