stdbuf -o 0 |& tee log를 사용할 때 stderr 출력이 없습니다.

stdbuf -o 0 |& tee log를 사용할 때 stderr 출력이 없습니다.

다음 명령을 사용하여 실행 중인 프로그램의 표준 출력 및 오류 정보를 기록하고 싶습니다.

  stdbuf -o 0 ./myprogram|& tee mylog

한 컴퓨터에서는 잘 작동합니다. 화면에서 stdout을 볼 수 있지만 mylog다른 컴퓨터에서는 화면과 mylog. 그들은 모두 Fedora OS와 x86_64입니다.

답변1

stdout과 stderr을 모두 버퍼링되지 않은 상태로 만들어 보십시오.

stdbuf -e 0 -o 0 ./myprogram |& tee mylog

편집하다:원래 답변을 대체했습니다. 위의 내용이 문제에 대한 해결책일 가능성이 높습니다.

답변2

COMMAND가 표준 스트림(예: "tee")의 버퍼링을 조정하는 경우 이는 "stdbuf" 변경 사항의 해당 설정을 재정의합니다.

여기를 읽어주세요.https://linux.die.net/man/1/stdbuf

관련 정보