Eu tenho um contêiner em que o shell nele executa bash. Ele tem o bash conclusion instalado e funciona bem. Este contêiner tem muitos comandos cli personalizados, mas todos eles devem ser precedidos por nextcloud
. Então, se eu digitar nex <tab>
nex é único o suficiente para completar.
Existe uma maneira de definir uma conclusão "padrão" quando estiver em uma nova linha CLI (em branco) para que a primeira guia injete esse padrão ou seria aceitável apenas injetar nextcloud
sem uma guia.
Pesquisei por "bash conclusion" e a página de manual do bash, assim como a ajuda para complete. Brinquei um pouco com -D, -E e com base na verborragia parece possível, mas não vejo como. Uma ajudinha?
https://opensource.com/article/18/3/creating-bash-completion-script
https://linux.die.net/man/1/bash (página de pesquisa para Completing
)
complete: complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]
Specify how arguments are to be completed by Readline.
For each NAME, specify how arguments are to be completed. If no options
are supplied, existing completion specifications are printed in a way that
allows them to be reused as input.
Options:
-p print existing completion specifications in a reusable format
-r remove a completion specification for each NAME, or, if no
NAMEs are supplied, all completion specifications
-D apply the completions and actions as the default for commands
without any specific completion defined
-E apply the completions and actions to "empty" commands --
completion attempted on a blank line
-I apply the completions and actions to the initial (usually the
command) word
When completion is attempted, the actions are applied in the order the
uppercase-letter options are listed above. If multiple options are supplied,
the -D option takes precedence over -E, and both take precedence over -I.
Exit Status:
Returns success unless an invalid option is supplied or an error occurs.
-W wordlist
é o que você precisa.Você também pode achar esta abordagem útil: Terminal com prefixo "virtual" do Bash .