O fato de a saída obtida com set -x
conter tantos sinais de adição ( ++++++
) significa que / usr / share / bash-completion / bash_completion está sendo recursivo.
Em outras palavras, / usr / share / bash-completion / bash_completion está "chamando" ele mesmo, resultando em uma espécie de loop infinito, como você observou.
Se eu fosse você, verificaria /etc/bash_completion.d procurando referências a / usr / share / bash-completion / bash_completion . Especificamente, aqui está o que eu faria:
-
ls -l /etc/bash_completion.d
(não deve haver links simbólicos para / usr / share / bash-completion / bash_completion ); -
grep -r bash_completion /etc/bash_completion.d
(nenhum dos arquivos em /etc/bash_completion.d deve fornecer / usr / share / bash-completion / bash_completion ).
Como alternativa, você pode executar esses dois comandos em seu shell (sem concluir o bash ativado, é claro):
set -x
. /usr/share/bash-completion/bash_completion |& grep -E "^\++ (\.|source)"
Isso imprimirá todas as "importações" e nos ajudará a identificar o código desagradável que está causando o problema.
Da saída de grep -r bash_completion /etc/bash_completion.d
, você pode ver muitas correspondências. A maioria deles são comentários (porque começam com #
), mas há uma linha interessante:
/etc/bash_completion.d/bash_completion~:. /usr/share/bash-completion/bash_completion
/etc/bash_completion.d/bash_completion~ é o culpado. Este é o arquivo que está causando o recurso recursivo.
/ usr / share / bash-completion / bash_completion , de fato, origina automaticamente todos os arquivos no diretório /etc/bash_completion.d . Mas este diretório, no seu caso, contém o arquivo bash_completion ~ , que está obtendo / usr / share / bash-completion / bash_completion novamente. Isso resulta no tipo de loop que você está experimentando.
Então, vá em frente e exclua-o!
sudo rm /etc/bash_completion.d/bash_completion~
(Ou talvez leia se você acredita que contém algo útil.)
Não sei dizer por que esse arquivo estava nesse diretório. O que posso dizer é que o sufixo ~
significa que este é um arquivo de backup. Muitos editores de texto (incluindo o Gedit) criam cópias de backup ao salvar. Provavelmente foi deixado lá por engano enquanto você estava fazendo mudanças.