回避できないような些細なエラーがあります。すべてのセクションに存在するため、「man」と言うことができるさまざまなセクション番号を返そうとしています。-s コマンドを使用していますが、問題があります。使用するたびに、「どのマニュアルページが必要ですか」というメッセージが表示され続けます。何か助けはありますか?
3 に答える
コマンドのセクション番号を取得する場合は、 のようなものが必要man -k "page_name" | awk -F'-' "/^page_name \(/ {print $1}"
で、出現page_name
する を必要なコマンドに置き換えます。
「man」出力の形式は「実装定義」であるため、これは必ずしもすべてのシステムで機能するとは限りません。つまり、FreeBSD、OS X、さまざまな種類の Linux などの形式は同じではない可能性があります。たとえば、私のものは次のとおりです。
page_name (1) - description
セクション番号のみが必要な場合は、その行の結果をシェル変数に保存し、パラメーター展開を使用してセクション番号の周りのかっこを削除するなど、できることがあると確信しています。
man -k "page_name" | awk -F'-' "/^page_name \(/ {print $1}" | while IFS= read sect ; do
sect="${sect##*[(]}"
sect="${sect%[)]*}"
printf '%s\n' "$sect"
done
コマンドが表示されるセクションの数を取得するには、キーワード| wc -l
と同じ行の最後に追加します。コマンドには、次の 3 つがありますdone
。mount
2
2freebsd
8
正しい構文には引数が必要です。通常、あなたはどちらかを探しています
man -s 1 man
man(1)コマンドのドキュメントを読む、または
man -s 7 man
man(7)マクロ パッケージについて読む。
標準セクションのリストが必要な場合は、前者に含まれています。ただし、追加のセクションがローカルにインストールされている場合があります。/usr/local/share/man
たとえば、のディレクトリ リストでは、追加のセクションが表示される場合があります。
(ちなみに、-s
このコンテキストでは「コマンド」ではなく、オプションです。)
の性質を誤解しています-s
。からman man
:
-S リスト、-s リスト、--sections=list
List は、検索する「注文固有」のマニュアル セクションをコロンまたはコンマで区切ったリストです。このオプションは、$MANSECT 環境変数をオーバーライドします。(-s のスペルは、System V との互換性のためのものです。)
したがって、 man が見るman -s man
と、セクション「man」(通常のセクションではないため、存在しない可能性が最も高い) のページを探したいと考えますが、どのページかを指定していないため、次のように尋ねられます。
どのマニュアルページが必要ですか?
ところで、「男はすべてのセクションにあると信じている単なるテストケースです」 -いいえ、おそらく1つだけであり、私の知る限り、すべてのセクションにページがある単語はありません。2 つまたは 3 つを超えることは非常にまれです。
さまざまな標準セクションも説明されていman man
ます。