사용법 메시지를 stderr 또는 stdout으로 보내야 합니까?

사용법 메시지를 stderr 또는 stdout으로 보내야 합니까?

예를 들어 사용 정보가 인쇄되는 경우

 command -?

Unix 명령은 stderr 또는 stdout으로 이동합니다. 이유는 무엇입니까? 사용자가 옵션에 실수를 하면 같은 위치로 이동해야 합니까?

답변1

표준 출력으로 이동해야 하므로 다음을 입력할 수 있습니다.

command --help | less

이것도 에디터가 추천한거다Gnu 코딩 표준--help.

반면, 유효하지 않은 옵션을 사용하거나 필수 인수를 생략할 때 수신되는 사용법 메시지는 오류 메시지이고 파이프라인의 다음 명령에 입력되는 것을 원하지 않기 때문에 stderr로 보내야 합니다.

사용법 메시지는 명령을 사용할 때 예상되는 일반적인 명령 출력입니다 --help. 따라서 표준 출력으로 이동하므로 less또는 같은 다른 명령으로 파이프될 수 있습니다 grep.

이라고 말하면 command --bogus-option | other-command표준 출력으로 보낼 메시지를 사용하고 싶지 않을 것입니다. 이제 메시지는 예상치 못한 출력이므로 처리하면 안 되기 때문입니다 other-command. 또한 출력이 --help몇 줄 이상인 경우 사용 오류 메시지에는 출력 요약만 포함되어야 하며 --help사용자에게 --help추가 세부 정보를 묻는 메시지가 표시되어야 합니다.

관련 정보