Como posso obter conclusões do bash?

Como posso obter conclusões do bash?

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 UpdateeUpgrade

Responder3

Certifique-se de ter o bash-completionpacote 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 yumou apt. Após a instalação, você precisará sair e fazer login novamente ou obter recursos .bashrcpara 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.

informação relacionada