使用法メッセージを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追加の詳細を求めるプロンプトを表示する必要があります。

おすすめ記事