Você também pode usar a opção -X com compgen :
_grcat() {
local word
COMPREPLY=()
if [ 1 -eq "$COMP_CWORD" ]; then
pushd /etc/grcat &>/dev/null || return 1
word="${COMP_WORDS[COMP_CWORD]}"
local filterpat='README'
COMPREPLY=($(compgen -f -X "$filterpat" -- "$word"))
popd &>/dev/null
fi
}
complete -F _grcat grcat
compgen aceita a maioria das mesmas opções que complete , exceto -p e -r .
compgen também gera o resultado, escreve as correspondências na saída padrão. complete apenas armazena regras para uso futuro.