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.