E como ele também preenche aliases automaticamente?
E como ele também preenche aliases automaticamente?
Respostas:
Dependendo do comando:
/etc/bash_completion.d/*
(ou um local diferente em alguns sistemas). Essas funções são registradas com o built-in (por exemplo, informa ao bash para chamar a função quando você pressiona um comando). Eles usam o built-in para dizer ao bash "aqui estão as possíveis conclusões".complete
complete -F _find find
_find
Tabfind
compgen
--help
e analisa a saída. Tais comandos podem ser registrados com o complete
built-in, por exemplo complete -F _longopt ls
. _longopt
é de fato uma função de geração de conclusão, que analisa a saída de um comando em vez de usar uma lista fixa. (Existem outras funções de conclusão mais especializadas que analisam a saída de um comando para gerar possíveis conclusões; procure /etc/bash_completion.d/*
exemplos.)complete
built-in tem opções para isso, por exemplo, -A
para aliases.O suporte para a conclusão do bash é fornecido no Debian e Ubuntu pelo pacote de conclusão do bash . Em geral, você também precisa descomentar o seguinte /etc/bash.bashrc
e / ou .bashrc
obter os arquivos de conclusão do bash. O seguinte é de /etc/bash.bashrc
:
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
para que isso funcione. Eu normalmente descomentei isso em ambos. O manuseio de shells interativos / de login no Debian é um pouco confuso.
Presumivelmente, comentários semelhantes se aplicam a outras distribuições, embora talvez elas habilitem o fornecimento por padrão.