Grande pergunta! Se o seu comando allinfo
foi igual a apenas apt-cache
(ou seja, sem o show
), poderemos examinar a conclusão de apt-cache
e aplicar isso ao seu allinfo
alias.
No entanto, você quer um subconjunto da conclusão apt-cache
, por isso temos um pouco mais de trabalho a fazer.
Se olharmos na definição de conclusão para apt-cache
- in /usr/share/bash-completion/completions/apt-cache
, veremos o seguinte para o subcomando show
:
COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" 2> /dev/null ) )
- isso é apenas definir a variável COMPREPLY
para a lista de pacotes correspondentes.
Então, podemos emprestar isso e escrever nossa própria função, e ligá-la ao seu alias allinfo:
# define a function to print the possible completions for
# an allinfo invocation
_allinfo()
{
_init_completion || return
COMPREPLY=($(apt-cache --no-generate pkgnames "$cur" 2>/dev/null))
return 0
}
# bind the above completion function to the 'allinfo' alias
complete -F _allinfo allinfo
Se você adicionar esse fragement ao seu arquivo .bashrc
, deverá obter as conclusões funcionando conforme o esperado.