Komutun kullanımı nedir?


17

completeKomutumu gnome-terminalimde çalıştırırken , bazı komutlar gösteriyor. Ve completekomutun kullanımı nedir?

$ 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

Liste uzuyor, bu yüzden bazılarını gönderdim.


1
'Man complete' komutunu denedim ama hiçbir şey göstermiyor.
Avinash Raj

2
deneyinhelp complete
Sylvain Pineau

Yanıtlar:


16

completebir bash yerleşik işlevidir. Yani sistemde bir ikili yoktur. Basarken komutların nasıl tamamlanacağını yönetir tab.

Örnek: eğer yazarsanız:

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

... bu komut için olası tüm değerlerin bulunduğu bir liste görünüyor. Bu durumda, çalışan tüm işlemler anlamına gelir. completeFonksiyonun çıktısına bakın :

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

Bu _pgrep, komut sekme sırasında (-F) işlevinin yürütüldüğü anlamına gelir pidof. Bu işlevin tanımı /etc/bash_completion.d/procps.

Başka bir örnek: yazarsanız:

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

... cdaltında yapabileceğiniz klasörlerin listesini görürsünüz /usr/. Hangi işlev yürütülür? greping complete(yukarıdaki gibi) işlevini o funtction var söyler _cdde /etc/bash_completion.

Kendiniz yapın : Bir programınız / komut dosyanız var /bin/myprogve bunu aşağıdaki gibi yürütürseniz

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

... sadece klasörleri listelemeli, dosyaları değil. Bu yüzden bash tamamlama işleminizi aşağıdaki komutla genişletin:

user@host:~$ complete -F _cd myprog

Bu kadar. Özel şeyleri tamamlamak için kendi işlevlerini de yazabilirsiniz, örneğin yalnızca belirli dosyaları veya sayıları veya statik değer listelerini tamamlamak ...



8

completekullanıcı TABbir terminalde tuşa bastığında otomatik tamamlama işlemini gerçekleştirmek için kullanılan bir bash komutudur .

Sadece completearadığınızda, komutların veya servis seçeneklerinin otomatik olarak tamamlanması için kaydedilen tüm işlevler listelenir.

Bash man sayfalarından:

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.

Kontrol /usr/share/bash-completion/bash_completionbash ile gelen varsayılan tamamlamalarını görmek için.

Bu komutla ilgili eksiksiz bir eğitim için http://www.linuxjournal.com/content/more-using-bash-complete-command adresini ziyaret edin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.