El siguiente script bash activará el autocompletado para el comando tsclient, de forma que, la primera pulsación del tabulador mostrará directamente la opción -x y la segunda listará las conexiones que tenemos disponibles dentro de ~/.tsclient.
_bash_completion_tsclient()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="-x"
case "${prev}" in
-*)
local conexiones=$(ls ~/.tsclient/*.rdp)
COMPREPLY=($(compgen -W "${conexiones}" -- ${cur}))
return 0;
;;
*)
;;
esac
COMPREPLY=($(compgen -W "${opts}" -- ${cur}))
return 0
}
complete -F _bash_completion_tsclient tsclient
Para que los cambios sean permanentes, crearemos el fichero /etc/bash_completion.d/tsclient y reinicaremos nuestro shell.
Para probarlo inmediatamente en la sesión activa basta con ejecutar:
$. /etc/bash_completion.d/tsclient
En caso de problemas, lo primero que hay que comprobar es que el siguiente código está habilitado en ~/.bashrc o en /etc/bash.bashrc:
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Para ver la lista de reglas que tenemos habilitadas en nuestra sesión ejecutaremos el comando complete -p

No hay comentarios:
Publicar un comentario