web-dev-qa-db-ja.com

「compgen」組み込みコマンドを理解する

help compgenから:

$ help compgen
compgen: compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [Word]
    Display possible completions depending on the options.

    Intended to be used from within a Shell function generating possible
    completions.  If the optional Word argument is supplied, matches against
    Word are generated.

    Exit Status:
    Returns success unless an invalid option is supplied or an error occurs.

それで、オプション[-abcdefgjksuv]は何を表しているのですか?

つまり、すべてのオプションの使い方を知りたいのです。

40
Pandya

compgenコマンドのオプションは、-p-rを除いて、completeと同じです。 compgen manページから:

compgen
 compgen [option] [Word]
 Generate possible completion matches for Word according to the options, which 
 may be any option accepted by the complete builtin with the exception of -p 
 and -r, and write the matches to the standard output

オプション[abcdefgjksuv]の場合:

  • -aは、エイリアスの名前を意味します
  • -bは、シェル組み込みの名前を意味します
  • -cは、すべてのコマンドの名前を意味します
  • -dは、ディレクトリの名前を意味します
  • -eは、エクスポートされたシェル変数の名前を意味します
  • -fは、ファイルと関数の名前を意味します
  • -gはグループの名前を意味します
  • -jは、ジョブの名前を意味します
  • -kは、シェルの予約語の名前を意味します
  • -sは、サービスの名前を意味します
  • -uは、userAlias名の名前を意味します
  • -vは、シェル変数の名前を意味します

完全なmanページ here を参照できます。

42
cuonglm

O'Reillyには、本( bash Quick Reference by Arnold Robbins )があり、ヒントフォームcompgenオプションも完全に説明されています。完全なドキュメンテーションに行くことは、上にリストされたもの以外のいくつかのオプションを提供します。それらは現在のバージョンに関連していない可能性がありますが、現在のバージョンのドキュメントに記載されていない、または説明されていないオプションがあります。

現在、これらの大文字のオプションがcompgenの呼び出しに使用されているか、完全なドキュメントで言及されています。

compgen [option] [Word]
complete [-abcdefgjksuv] [-o comp-option] [-A action] [-G globpat] [-W wordlist]
      [-P prefix] [-S suffix] [-X filterpat] [-F function]
      [-C command] name [name ...]
      complete -pr [name ...]
  • -A action =可能な補完のリストを生成するためのアクションは、次のいずれかです(リンクを参照)。
  • -C command =サブシェルでコマンドを実行し、その出力を補完のリストとして使用します。
  • -F function =現在のシェルでシェル関数を実行します。その戻り時に、COMPREPLY配列から補完のリストを取得します。
  • -G globpat =可能な補完を生成するために、ファイル名展開パターンglobpatが展開されます。
  • -P prefix = prefixは、他のすべてのオプションが適用された後、可能な各補完の先頭に追加されます。
  • -S suffix = suffixは、他のすべてのオプションが適用された後に、可能な各補完に追加されます。
  • -W wordlist = IFS特殊変数の文字を区切り文字として使用してワードリストが分割され、結果の各Wordが展開されます。可能な補完は、完成した単語に一致する結果リストのメンバーです。
  • -X filterpat = filterpatは、ファイル名の展開に使用されるパターンです。これは、前述のオプションと引数によって生成された可能な補完のリストに適用され、filterpatに一致する各補完はリストから削除されます。 filterpatの先頭の「!」はパターンを否定します。この場合、filterpatに一致しない補完は削除されます。

ドキュメントのかなり網羅的なバージョンは Programmable Completion Builtins にあります。

どちらのコマンドも組み込みコマンドなので、公式ドキュメントはローカル man page にあります。bashの場合です。検索オプションを使用して、関連するパーツを検索します。申し訳ありませんが、インターネットサービス上であっても、どちらのビューバリアントでもレイアウトは多少壊れています(生成されたレイアウトでは使いやすさが低下しています)。

0
Alexander Stohr