一部のコマンドがmanpages
に依存しているのに対し、他のコマンドはコマンド使用法の参照を提供するために--help
フラグのようなものに依存している理由の質問 新規ではありません 。通常、コマンドのドキュメントとコマンドの使用法の概要の間にはスコープの違いがあります。後者はしばしば前者のサブセットです。しかし、たとえばほとんどのコマンドやユーティリティにマンページがある場合でも、概要セクションのフォーマットには違いがあり、そのような情報を extract しようとすると非常に実用的な意味があります。また、コマンドにドキュメントがないように見える場合は、strings
ユーティリティの手がかりが見つかる場合があります。
この[〜#〜] qnx [〜#〜]プラットフォームで使用しているコマンドに興味があり、 use
を発見しました。コマンド1 使用情報を表示します。 usemsg
で説明されているように、フレームワークにはユーティリティソースでの標準使用レコードの設定が含まれ、コンパイル後はuse
コマンドでアクセスでき、ラップすることもできます。ネイティブ機能など。簡単にできるのでとても便利です。
use -d dir >>file
/base
および/proc/boot
で、基本的にシステム上のすべてのコマンドのすべての使用法を抽出します。
そこで、 GNU coreutils ls と FreeBSD ls のソースを簡単に調べて、それらがそのようなことをしたかどうかを確認し、前者は使用情報をいくつかusagenamedfunction(for --help
Igues)一方で、後者はそれをどこにも配置していないようです(?)。
use
)は、コマンド使用法のリファレンスをインタラクティブに提示するための商用Unixで見られる典型的なものですか?1 .use
コマンド:
use
Print a usage message (QNX Neutrino)
Syntax:
use [-aeis] [-d directory] [-f filelist] files
Options:
-a
Extract all usage information from the load module in its source form, suitable for piping into usemsg.
-d directory
Recursively display information for all files under directory.
-e
Include only ELF files.
-f filelist
Read a list of files, one per line, from the specified filelist file, and display information for each.
-i
Display build properties about a load module.
-s
Display the version numbers of the source used in the executable.
files
One or more executable load modules or Shell scripts that contain usage messages.
商用ユニスは通常、マニュアルページでのみ使用情報を表示します。コマンド自体に使用法情報を表示させることは、従来のUnix機能ではありません(サポートされているオプションのリストを表示することを除いて、使用法エラーについての説明はありません)。 POSIXとその親戚はこのようなことについて話しません。
使用法の要約を表示する--help
オプション(通常、オプションのリスト、1行に1つ、各オプションの最大説明は最大60文字)を持つことは GNU標準 です。私の知る限り、この規則は、複数文字のオプション名の二重ダッシュ規則の一部として、GNUプロジェクトによって開始されました。X11ユーティリティなど、他のユーティリティもあります。ダッシュが1つ付いた複数文字のオプション名を使用し、-help
をサポートします。どちらが最初に来たのかわかりません。
use
コマンドはQNXのものです。
注GNU coreutilsのマニュアルページは$ cmd--helpから生成されます
また、bashビルトインは少なくとも--helpをサポートしていないことに注意してください。そこでは、たとえばhelp umask
を使用する必要があります。現在、POSIXは許可しており、kshは少なくともumask --help
を使用します。最近、bashもこの構文を受け入れる可能性があることが提案されました