Como posso obter conclusões completas?

5

Existe uma boa maneira de imprimir (por exemplo, stdout) uma lista de todas as conclusões possíveis de um comando no bash (as que ele me daria se eu digitasse o comando e pressionasse a guia)?

Edit: Eu acho que isso não estava muito claro, agora que eu li novamente. Eu sei como obter conclusões manualmente. Eu quero fazer isso de forma programática.

    
por Ben Kraft 21.08.2011 / 05:24

5 respostas

3
O

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/)

parece funcionar, mas é muito frágil.

    
por 21.08.2011 / 12:47
3

Pressione TAB duas vezes. A maioria dos shells semelhantes a BASH listará todas as opções de preenchimento automático correspondentes para uma determinada substring.

por exemplo,

root@host$apt-get up

pressionando TAB duas vezes neste comando irá listar ambos Update e Upgrade

    
por 21.08.2011 / 06:04
2

Verifique se você tem o pacote bash-completion instalado. Dependendo do seu tipo de instalação, ele pode ou não ser incluído por padrão, se não apenas pegar com yum ou apt . Após a instalação, você precisará efetuar logout e login novamente ou reutilizar seu .bashrc para usá-lo.

@Amazed está no local sobre como usá-lo.

    
por 21.08.2011 / 06:10
1

Não realmente ... lembre-se de que as conclusões podem ser uma função e podem depender de argumentos anteriores.

Dito isso, complete | grep ... pode te levar a algum lugar

    
por 21.08.2011 / 06:24
0

Acho que o que você está pedindo é basicamente uma lista de todos os comandos que começam com uma determinada string. Você deve ser capaz de fazer isso obtendo uma lista de todos os executáveis em seu sistema e executando-os através do grep.

    
por 21.08.2011 / 10:22

Tags