Unix/Linux コマンド構文

Unix/Linux コマンド構文

Linux コマンドが使用方法をリストする場合、通常は次のように実行されます (例: wget):

wget [option]... [URL]...

コマンドの使用法を指定するこのパターンについて私が理解していることは、これはパターンを指定する通常の正規表現の方法ではなく、wgetコマンドではオプションを指定することは必須ではないということであり、その論理ではURLを指定することも必須ではないということです。つまり、直接次のようにすることができます。

wget www.google.com

これでうまくいきます。オプションは必須ではありません。オプションが角括弧で囲まれているために必須ではないのであれば、そのロジックに従ってURLを指定することも必須ではなく、

wget

コマンドとしても動作するはずです。私の質問は、コマンドの使用法を指定するこのパターンが詳しく説明されているドキュメントはありますか?

答え1

通常、ほとんどのマニュアル ページで [...] はオプションの引数を示し、'|' は論理和を示すために使用される構文が使用されています。マニュアル ページがどのように表示されるかを規定する権限はないため、マニュアル ページの作成者によって異なります。ただし、質問に具体的に言えば、この場合、マニュアル ページは正しい表示になります。-i スイッチを使用して URL を指定するか、URL 自体を提供することができます。したがって、オプションは「条件付きオプション」と考えることができます。実際には、次のように表示されるはずです。

      ([option (excluding -i)] (-i file | URL)) 

しかし、これがすぐに複雑になることがわかります。したがって、簡単な説明を鵜呑みにしないでください。私の経験では、コマンド構文は通常、最も心配する必要はありません。

また、細かいことを言うと、あなたが見ているのは正規表現ではありません ;)

答え2

これについては正式な定義はないと思います (間違っているかもしれません) が、いくつかのマニュアルページをランダムにサンプリングしたところ、このロジックにはあまり標準がないようです。

答え3

私はこう言うだろうと予想する

wget [options] URL...
wget [-i|--input-file] file [options] [URL...]

単一の概要行は、権威ある文書が情報ドキュメントマニュアルページは非常に短い概要であり、最も一般的なオプションのみが説明されていることがよくあります。

これをBSDツールと比較すると、タールそして独立したツールrsync

一方で、POSIX ユーティリティ規約相互に排他的なオプションには複数の概要行を使用する必要があると書かれていますが、その-iオプションは実際には相互に排他的ではありません。

答え4

man 7 man-pages(Linux man-pages パッケージより) 規則に従っていない man ページがいくつかある場合でも、知っておくべき規則について説明します。

関連情報