Como o Bash no Ubuntu conhece a lista específica de ações de uma ferramenta?
Por exemplo, se eu digitar apt-get e tab duas vezes, vejo apenas remover, atualizar, atualizar ... etc, mas não as ações de outro comando ou os arquivos no diretório atual.
Estou desenvolvendo uma ferramenta de linha de comando no Go e gostaria de fornecer esse recurso para as distribuições que o suportam.
bash
ubuntu
autocomplete
Amged Rustom
fonte
fonte
Respostas:
Faz isso usando os recursos de conclusão do bash v4. O código de conclusão para
apt-get
é fornecido pelobash-completion
pacote e localizado em/usr/share/bash-completion/completions/apt-get
. Os aplicativos que têm conclusão e não fazem parte dobash-completion
pacote base inserem seus scripts de conclusão/etc/bash_completion.d
.As conclusões são carregadas via sourcing
/etc/bash_completion
. Exatamente onde isso é feito irá variar dependendo das versões do Debian ou Ubuntu. Isso, por sua vez, fornecerá tudo em/usr/share/bash-completion/completions
e/etc/bash_completion.d
.fonte