¿De qué sirve el comando completo?


17

Mientras ejecuto el completecomando en mi terminal gnome, muestra algunos comandos. ¿Cuáles son? ¿Y de qué sirve el completecomando?

$ 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

La lista es larga, así que publiqué algunos de ellos.


1
Intenté el comando 'man complete' pero no muestra nada.
Avinash Raj

2
intentarhelp complete
Sylvain Pineau

Respuestas:


16

completees una función bash incorporada. Entonces no hay un binario en el sistema. Maneja cómo se completarán los comandos al presionar tab.

Ejemplo: si escribe:

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

... aparece una lista con todos los valores posibles para este comando. En este caso, significa todos los procesos en ejecución. Vea la salida de la completefunción:

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

Esto significa que la función _pgrep(-F) se ejecuta al tabular el comando pidof. La definición de esta función está en /etc/bash_completion.d/procps.

Otro ejemplo: si escribe:

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

... ves la lista de carpetas que puedes ver cddebajo /usr/. ¿Qué función se ejecuta? greping la completefunción (como arriba) nos dice que es la función _cden /etc/bash_completion.

Hágalo usted mismo : tiene un programa / script llamado /bin/myprogy desea que si lo ejecuta de la siguiente manera

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

... solo debe enumerar carpetas, no archivos. Así que extienda su finalización de bash con el siguiente comando:

user@host:~$ complete -F _cd myprog

Eso es. También puede escribir funciones propias para completar cosas personalizadas, por ejemplo, completar solo archivos específicos o números o listas de valores estáticos ...


Así es como la terminación de línea de comandos de Git parece mucho más inteligente que la mayoría de programa de ...
AShelly

8

completees un comando bash utilizado para realizar la acción de autocompletar cuando el usuario presiona la TABtecla en una terminal.

Llamar solo completeenumerará todas las funciones registradas para la finalización automática de comandos u opciones de servicios.

De las páginas del manual de bash:

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.

Verifique /usr/share/bash-completion/bash_completionpara ver las finalizaciones predeterminadas que vienen con bash.

Visite http://www.linuxjournal.com/content/more-using-bash-complete-command para obtener un tutorial completo sobre este comando.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.