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.sqllTab
sqll
sqlldr $aTab
a
sqlldr Tab
sqlldr
Las reglas de finalización están definidas por el complete
incorporado. Bash no realiza un seguimiento de cuándo complete
se 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.bashrc
si está implementado) para cargar todos estos scripts: generalmente . /etc/bash_completion
es 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.d
o que haya venido con instrucciones para incluir algún código en su .bashrc
. Puede usar complete -p sqlldr
para 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_completion
y eche un vistazo a la producción deset
cuánto ha crecido su entorno.