Aparentemente, perdi completamente a sua pergunta. A resposta é que não há "autocompletar normal" bem definido. No entanto, se você souber que tipo de coisa gostaria de concluir (arquivos, aliases, pids, nomes de variáveis etc.), poderá atribuir um ou mais sinalizadores a compgen
. Veja esta página de manual do compgen , especificamente as opções -A
em complete
(são as mesmas). Por exemplo. Se você quiser completar os nomes dos arquivos, você usaria isso:
compgen -f -- "${COMP_WORDS[COMP_CWORD]}"
Se você quiser completar comandos (incluindo aliases, funções, etc.), você pode usar isto:
compgen -back -A function -- "${COMP_WORDS[COMP_CWORD]}"
Use $COMP_CWORD
para obter o índice da palavra que está sendo concluída. Se o índice não for 1, defina $COMPREPLY
para ()
e retorne.
COMP_CWORD
An index into ${COMP_WORDS} of the word containing the current
cursor position. This variable is available only in shell functions
invoked by the programmable completion facilities