Homebrew instalado bash-completion não funciona [fechado]

0

Eu instalei o bash-completion via homebrew e adicionei o código abaixo para .bash_profile

if [ -f $(brew --prefix)/etc/bash_completion ]; then
  . $(brew --prefix)/etc/bash_completion
fi

A conclusão do bash não funciona, mesmo que haja muitos scripts válidos de conclusão do bash em /usr/local/etc/bash_completion.d

$ ls /usr/local/etc/bash_completion.d
abook               mc
adb-completion.bash     mcrypt
ant             mdadm
apache2ctl          medusa
apt             minicom
apt-build           mkinitrd
aptitude            module-init-tools

Ao executar o bash-completion manualmente em um prompt bash, recebo o erro

$ [ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
-bash: .: /Users/hanxue/.bash_completion: is a directory
$ source /usr/local/etc/bash_completion
-bash: .: /Users/hanxue/.bash_completion: is a directory
    
por hanxue 07.10.2017 / 15:06

1 resposta

1

Descobri que tenho um ~/.bash_completion diretório , quando o script bash-completion está esperando um arquivo .

A exclusão do diretório resolveu o problema e a conclusão do bash agora está funcionando

$ ls -ld ~/.bash_completion/
drwxr-xr-x  3 hanxue  staff  102 Oct  1  2013 /Users/hanxue/.bash_completion/
$ rm -R ~/.bash_completion
$ [ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion

Olhando para o código fonte da conclusão do bash , encontrei esta linha

# source user completion file
[[ $BASH_COMPLETION != ~/.bash_completion && -r ~/.bash_completion ]] \
    && . ~/.bash_completion
    
por 07.10.2017 / 15:12