完全なコマンドの使用は何ですか?


17

実行中 completeの私のgnome-terminalの上でコマンドを、それはいくつかのcommands.Whatを示し、彼らは何ですか?そして、completeコマンドの使用は何ですか?

$ complete
complete -F _minimal 
complete -F _filedir_xspec oodraw
complete -F _filedir_xspec elinks
complete -F _filedir_xspec freeamp
complete -F _longopt split
complete -F _longopt sed
complete -F _longopt ld
complete -F _longopt grep
complete -F _service /etc/init.d/vboxweb-service
complete -F _service /etc/init.d/vboxballoonctrl-service
complete -F _service /etc/init.d/rc
complete -F _service /etc/init.d/nmbd
complete -F _service /etc/init.d/halt
complete -j -P '"%' -S '"' jobs
complete -d pushd

リストが長くなるので、それらのいくつかを投稿しました。


1
「man complete」コマンドを試しましたが、何も表示されません。
アビナッシュラジ14

2
試してくださいhelp complete
シルヴァンピノー14

回答:


16

completebash組み込み関数です。そのため、システム上にバイナリはありません。を押すとコマンドが完了する方法を処理しますtab

例:入力した場合:

user@host:~$ pidof <tab><tab>

...このコマンドで使用可能なすべての値を含むリストが表示されます。この場合、実行中のすべてのプロセスを意味します。complete関数の出力を参照してください。

user@host:~$ complete | grep pidof
complete -F _pgrep pidof

これは_pgrep、コマンドをタブで移動するときに関数(-F)が実行されることを意味しpidofます。この関数の定義はにあり/etc/bash_completion.d/procpsます。

別の例:次のように入力した場合:

user@host:~$ cd /usr/<tab><tab>
bin/     games/   include/ lib/     lib32/   local/   sbin/    share/   src/

... cd下にできるフォルダのリストが表示され/usr/ます。どの機能が実行されますか?greping complete(上記のように)関数は、それがfuntctionだ教えてくれる_cdの中で/etc/bash_completion

自分でやる:あなたはプログラム/スクリプトが呼ばれ/bin/myprogていて、次のように実行したい

user@host:~$ myprog /home/user/<tab><tab>

...ファイルではなくフォルダのみをリストする必要があります。したがって、次のコマンドを使用してbashの完了を拡張します。

user@host:~$ complete -F _cd myprog

それでおしまい。また、独自の関数を作成して、カスタムのものを完成させることもできます。たとえば、特定のファイルまたは数値または静的な値のリストのみを完成させます...


だから、gitのコマンドライン補完は、ほとんどのプログラムよりもはるかに賢いようです...
AShelly 14

8

completeユーザーがTAB端末でキーを押したときにオートコンプリートアクションを実行するために使用されるbashコマンドです。

呼び出すだけcompleteで、コマンドまたはサービスオプションの自動補完用に登録されているすべての機能がリストされます。

bashのmanページから:

complete: complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat]
          [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix]
          [-S suffix] [name ...]
    Specify how arguments are to be completed by Readline.

    For each NAME, specify how arguments are to be completed.  If no options
    are supplied, existing completion specifications are printed in a way that
    allows them to be reused as input.

    Options:
      -p    print existing completion specifications in a reusable format
      -r    remove a completion specification for each NAME, or, if no
        NAMEs are supplied, all completion specifications
      -D    apply the completions and actions as the default for commands
        without any specific completion defined
      -E    apply the completions and actions to "empty" commands --
        completion attempted on a blank line

    When completion is attempted, the actions are applied in the order the
    uppercase-letter options are listed above.  The -D option takes
    precedence over -E.

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

/usr/share/bash-completion/bash_completionbashに付属するデフォルトの補完を確認してください。

このコマンドに関する完全なチュートリアルについては、http://www.linuxjournal.com/content/more-using-bash-complete-commandをご覧ください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.