マニュアルページの構文について質問があります。
私はちょうど小さなプロジェクトのためのマンページ形式の文書を作成しました。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