진행 보고서 및 로깅 정보 ( "Doing foo; foo done"등)를 인쇄해야하는 공식 POSIX, GNU 또는 기타 지침이 있습니까? 개인적으로, 나는 stdout을 리디렉션하고 프로그램의 실제 출력 만 가져올 수 있도록 stderr에 작성하는 경향이 있습니다. 최근에 진행 보고서가 실제로 오류가 아니며 오류 메시지 만 stderr에 인쇄해야하기 때문에 이것이 좋은 습관이 아니라고 들었습니다.
두 위치 모두 의미가 있으며, 물론 당신이하는 일의 세부 사항에 따라 하나 또는 다른 것을 선택할 수 있지만, 일반적으로 인정되는 표준이 있는지 알고 싶습니다. POSIX, GNU 코딩 표준 또는 기타 널리 인정되는 모범 사례 목록에서 특정 규칙을 찾을 수 없었습니다.
비슷한 질문이 있지만이 정확한 문제를 해결하지 못합니다.
쉘 스크립트에서 stderr로 리디렉션을 사용하는 경우 : 허용되는 대답은 내가하는 경향이 있음을 나타냅니다. 프로그램의 최종 출력을 stdout에 유지하고 stderr에 다른 것을 유지하십시오. 그러나 이것은 주장에 의해 뒷받침되지만 사용자의 의견으로 제시됩니다.
사용법 메시지가 stderr 또는 stdout으로 이동해야합니까? : 이것은 메시지를 돕기위한 것이지만 GNU 코딩 표준을 인용합니다. 이것은 내가 찾고있는 일종의 메시지 일뿐입니다.
따라서 진행률 보고서 및 기타 정보 메시지 (프로그램의 실제 출력에 포함되지 않은)를 인쇄해야하는 공식적인 규칙이 있습니까?
stderr
때를 제외하고 --verbose
진행률 보고서도 포함되는 경우를 제외하고 오류 메시지 만보 고하는 것입니다.
stdout
결과와 함께 스피너 등을 인쇄 하면 결과를 쓸모 없게 만드는 안전한 방법입니다. 결과를 다른 프로그램으로 파이프해야하는 경우, 해당 프로그램은 결과를 스피너와 분리해야합니다. 또한 출력을 파일로 리디렉션하면 회전자가 표시되지 않습니다. 이모.