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


37

から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]は何の略ですか?

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


manページを読みましたか?man compgen。マニュアルページはシェルビルトイン用であるため、下にスクロールする必要がありcompgenます。
garethTheRed 14

5
「man compgen」は存在しません。「man bash」を使用
ケビンフ

回答:


38

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

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 はシェル変数の名前を意味します

ここで完全なマニュアルページを見ることができます


@Pandya:のオプションを参照してください。とを除き、とcomplete同じです。compgen-p-r
cuonglm 14

私はそれを読んで、man bashあなたの投稿を完成させるために編集を提案したので、私は簡単に受け入れます。
パンディア14

1
使用方法に関する情報はありますcompgen -Gか?私のパターンがcompgen -G '*.zip'あり、ファイル "foo.zip"があるとします。compgenはfoo.zipを検索しますが、ユーザーが既に「b」と入力した場合はどうなりますか。今、compgenは何も見つけられないはずです。私は、コマンドを与えるとcompgen -G '*.zip' "b"、compgenはまだfoo.zipを見つけた
エドワード・フォーク

@cuonglm serviceコマンドによって提供される関数を一覧表示する方法は?たとえば、service networkingタブを使用してヒットするとが返されforce-reload reload restart start stopます。それらを使用する方法を知っていcompgenますか?
イリアロストフツェフ

@IliaRostovtsev:github.com/scop/bash-completion/blob/…の例はこちら
cuonglm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.