Dependendo do comando:
- Alguém pode ter escrito uma função para gerar possíveis conclusões de argumentos, incluindo opções. Você encontrará funções para alguns comandos em
/etc/bash_completion.d/*
(ou um local diferente em alguns sistemas). Essas funções são registradas com ocomplete
built-in (por exemplo,complete -F _find find
diz ao bash para chamar a função_find
quando você pressione Tab em um comandofind
). Eles usam ocompgen
embutido para informar ao bash “aqui são as possíveis conclusões ”. - Para alguns comandos, o bash chamará o comando com o argumento
--help
e analisará a saída. Esses comandos podem ser registrados com ocomplete
embutido, por exemplo %código%.complete -F _longopt ls
é, na verdade, uma função de geração de conclusão, que acontece para analisar a saída de um comando em vez de usar uma lista fixa. (Há outras funções de conclusão mais especializadas que analisam a saída de um comando para gerar possíveis conclusões; procure em_longopt
por exemplos.) - Para coisas como aliases, a função de conclusão as procura nas tabelas internas do bash. O
/etc/bash_completion.d/*
integrado tem opções para isso, por exemplocomplete
para aliases.