自己作成のヘルプファイルを取得するには、オプションを人に渡します。

自己作成のヘルプファイルを取得するには、オプションを人に渡します。

マニュアルページの構文について質問があります。

私はちょうど小さなプロジェクトのためのマンページ形式の文書を作成しました。man commandname option たとえば、ユーザーがgitドキュメントのように入力できるようにしたいのですが、どうすればよいか man git commitわかりません。私はman()以下で関数を定義してこれを行う「汚い」方法を知っています.bashrc

man()
{
    case ${#} in
        0) /usr/bin/man ;;
        1) /usr/bin/man "${1}" ;;
        2) /usr/bin/man "${1}-${2}" ;;
        *) echo "Too many arguments" ;;
    esac
}

ユーザーにオプションを渡すために文書を改善する方法を誰か教えてもらえますかman

答え1

manのマニュアルページでは、コマンドラインで指定された名前のペアを特別に処理する方法について説明します。

   --no-subpages
          By default, man will try to interpret pairs of manual page names
          given on the command line as equivalent to a single manual  page
          name  containing  a  hyphen or an underscore.  This supports the
          common pattern of programs that implement a  number  of  subcom-
          mands,  allowing  them to provide manual pages for each that can
          be accessed using similar syntax as would be used to invoke  the
          subcommands themselves.  For example:
            $ man -aw git diff
            /usr/share/man/man1/git-diff.1.gz

git.1.gzしたがって、gitが提供するように、各オプションごとに別々のマニュアルページファイルを提供するだけで必要なものをgit-diff.1.gz自動的に得ることができます。

答え2

これはすでに機能ですマンデブ人、Linuxディストリビューションの一般的な実装です。 ~からman 1 man:

--no-subpages
  By  default,  man  will  try  to  interpret pairs of manual page names given on the
  command line as equivalent to a single manual page name containing a hyphen  or  an
  underscore.   This  supports the common pattern of programs that implement a number
  of subcommands, allowing them to provide manual pages for each that can be accessed
  using  similar  syntax  as would be used to invoke the subcommands themselves.  For
  example:

    $ man -aw git diff
    /usr/share/man/man1/git-diff.1.gz

したがって、あなたがすべきことは、適切な名前のマ​​ンページを持つことだけです<command>-<subcommand>

これは他の実装では機能ではないかもしれません。たとえば、macOSは以下をmanサポートしていません。

~ man git commit
# shows git manpage
No manual entry for commit

関連情報