質問: Go言語でコマンドラインツールを書いているのですが、 一つ分からないことがあります。 コマンドのオプションに--helpを渡された場合、 コマンドの使い方のみ表示して終了するのが普通だと思いますが、 その際の終了コードはどのようにすべきでしょうか? GitHub上にあるいくつかのコマンドラインツールを試してみると、 peco、ghq、hubなどの終了コードは0、 jvgrep、gocode、hkなどの終了コードは2となっており、 0と2、どちらにすべきか分かりませんでした。
回答: そのコマンドが--helpというオプションを定義しているなら、指示されたオプション(ヘルプを表示する)を正しく実行したということで0にすべきだし、—-helpというオプションを定義しているわけではなくて、不正オプションが指示された場合helpメッセージを表示する仕様にしているなら、 指示が誤っているということで2にすればよいと思います。 全てを調べたわけではありませんが、例えばpecoコマンドは--helpオプションがあることが説明されていますし、jvgrepコマンドは--helpオプションがあるとは書かれていません。