
Existe uma boa maneira de imprimir (por exemplo, para stdout) uma lista de todas as conclusões possíveis de um comando no bash (as que me daria se eu digitasse o comando e pressionasse tab)?
Editar: acho que isso não ficou muito claro, agora que li novamente. Eu sei como obter conclusões manualmente. Eu quero fazer isso programaticamente.
Responder1
bash não tem uma função para fazer exatamente isso. As conclusões programáveis dependem muito de vários parâmetros, como a posição do cursor...
eval $(complete -p 'git' | sed s/^complete/compgen/)
parecepara trabalhar, mas é muito frágil.
Responder2
Pressione TABduas vezes. A maioria dos shells do tipo BASH listará todas as opções de preenchimento automático correspondentes para uma determinada substring.
por exemplo
root@host$apt-get up
pressionar TABduas vezes neste comando listará ambos Update
eUpgrade
Responder3
Certifique-se de ter o bash-completion
pacote instalado. Dependendo do seu tipo de instalação, ele pode ou não ser incluído por padrão, se não, basta pegá-lo com yum
ou apt
. Após a instalação, você precisará sair e fazer login novamente ou obter recursos .bashrc
para usá-lo.
@Amazed está certo sobre como usá-lo.
Responder4
Acho que o que você está pedindo é basicamente uma lista de todos os comandos que começam com uma determinada string. Você deve conseguir fazer isso obtendo uma lista de todos os executáveis em seu sistema e executando-os por meio do grep.