O problema acabou sendo algo a ver com caracteres de aspas simples na lista de palavras de conclusão '
, corrigi-lo alterando% regex do comandogrep
de ^$cur*
para ^$cur[^']*$
:
_define()
{
local dict='/usr/share/dict/words'
local cur=${COMP_WORDS[COMP_CWORD]}
local regex="^$cur[^']*$"
if [[ $cur == -* ]]
then
COMPREPLY=()
else
local WORDS="$( grep "$regex" $dict )"
COMPREPLY=( $(compgen -W "${WORDS}" -- $cur) )
fi
}
complete -F _define define