誤った使用方法については、どのコマンドもユーザーにマニュアルページを参照するようにアドバイスしないのはなぜですか?

誤った使用方法については、どのコマンドもユーザーにマニュアルページを参照するようにアドバイスしないのはなぜですか?

私は最近、Linux ツールに関するワークショップを開催し、エラーが発生した場合はコマンドのマニュアル ページを参照するように学生に伝えてきました。

しかし、コマンド自体は、コマンドのマニュアル ページを参照するためのメッセージを返さないことに気付きましたman

ほとんどのコマンドでは、--helpオプションを使用するか、infoページを使用するか、使用方法の説明を使用するか、エラー メッセージを出力するだけかをアドバイスしています。

なぜコマンドはユーザーにマニュアル ページを参照するように求めないのでしょうか? マニュアル ページは、誤って使用されている場合に最初に参照する場所ではないでしょうか?

答え1

そこにはこれには客観的な理由があります。

--helpユーティリティ自体に組み込まれたフラグです。バイナリ実行可能ファイルに組み込まれているか、スクリプトの場合はスクリプトに組み込まれています。

マニュアル ページは、実行可能ファイル自体とは別にファイルシステムに保存されます。

マニュアル ページが欠落していても、実行ファイル自体はアクセス可能です。

ユーティリティ開発者として、ユーザーにドキュメントリソースを指示することで、かもしれないし、そうでないかもしれないシステム上に存在するよりも、コード自体に情報をインライン化する方が意味がありません。


それだけでなく、実行可能ファイルのバージョンとマニュアル ページのバージョンは一致する場合と一致しない場合があります。

たとえば、あるバージョンのPostgresが特定のパッケージに同梱されていて、別のバージョンのPostgresもシステムにインストールされている場合に、このような状況に遭遇しました man psql1つバージョンですが、 を実行して実際に取得したバージョンではありませんでしたpsql。フラグがなかったら--help、マニュアルページに従って特定のオプションが機能しない理由が大きな謎だったでしょう。

答え2

エラー メッセージ内のアドバイスがどのように表示されるかに関する統計はおそらく存在しないため、これは意見に依存します。

私が見た主な結びつきは、使用方法のメッセージ (1 行以上になる場合があります) を印刷することです。これは、マニュアル ページを読むように指示する必要がなかったためかもしれません。メッセージを読むように指示するのは--help冗長であり、情報ページを読むように勧めているのはごくわずかです。

私が開発したすべてのプログラムは、使用方法メッセージ(通常は複数行)を提供します。

関連情報