La finalización programable de Bash funciona analizando la línea de comando y descubriendo lo que se está completando:
- Algunos contextos se tratan especialmente, por ejemplo, la primera palabra de un comando se completa como un nombre de comando, lo que sigue a
$se completa como un nombre de variable, etc.
- Fuera de estos contextos, bash intenta completar el argumento de un comando, y se aplica la configuración para el comando o si falla (que suele ser el caso) para el nombre base del comando.
Por ejemplo, después , bash completa los nombres de comando que comienzan con . Después , bash completa los nombres de variables que comienzan con . Después , bash aplica las reglas de finalización para el comando . Las reglas de finalización pueden especificar una categoría (usuario, variable, archivos, etc.), un patrón comodín para los nombres de archivo o una función o fragmento de código para ejecutar.sqllTabsqllsqlldr $aTabasqlldr Tabsqlldr
Las reglas de finalización están definidas por el completeincorporado. Bash no realiza un seguimiento de cuándo completese llamó al builtin o de qué script (si corresponde) estaba. La mayoría de las distribuciones envían el paquete bash-complete , que proporciona una serie de reglas para comandos comunes. Esto toma la forma de una serie de archivos de script que contienen llamadas a complete, con un script que debe leerse .bashrc(o /etc/bash.bashrcsi está implementado) para cargar todos estos scripts: generalmente . /etc/bash_completiones necesario para activar la finalización programable y cargar los scripts disponibles.
El paquete estándar no incluye soporte para sqlldr. Si tiene dicho soporte, debe provenir de una fuente diferente. Es posible que esta fuente haya dejado caer un archivo en un directorio similar /etc/bash_completion.do que haya venido con instrucciones para incluir algún código en su .bashrc. Puede usar complete -p sqlldrpara ver las reglas actuales para sqlldr; como se mencionó anteriormente, esto no le dirá de dónde se cargaron esas reglas.
Tcsh, zsh y fish tienen mecanismos algo similares (todos se inspiraron en tcsh) pero incorporaron diferentes capacidades, sintaxis y capacidades.
/etc/bash_completion.d. Vea también/etc/bash_completiony eche un vistazo a la producción desetcuánto ha crecido su entorno.