Por que os scripts bash_completion estão persistentemente no ambiente?

Por que os scripts bash_completion estão persistentemente no ambiente?

Eu acidentalmente digitei o comando exportem meu emulador de console (executando Bash) em vez de export -p, e agora todos os scripts bash_completion estão persistentemente em meu ambiente, mesmo sobrevivendo à reinicialização. Eu gostaria de desfazer isso, mas não consegui descobrir depois de algumas horas. Cheguei ao ponto de encontrá-los em /etc/bash.bashrc, mas não vejo o que está originando isso e, de qualquer forma, ainda não consigo descobrir como ou por que exportsem argumentos pode causar tantos danos.

Isso está no Knoppix, na conta não root knoppix. Quando eu su -a conta root não tem esse problema.

[atualização: não sei do que estou falando. Por "ambiente" eu quis dizer a saída do setBash embutido, que era onde as funções eram mostradas. Eu deveria estar usando env. De qualquer forma, o que aconteceu foi que eu estava usando setmeus Makefiles para testar a geração de determinados valores, e fiquei surpreso ao ver de repente todas essas funções na saída. Então, após a reinicialização, verifiquei na linha de comando e ainda os vi, sem pensar em verificar no Makefile (do qual eles não aparecem mais, não sendo exportados. Então, problema resolvido; eles estavam obviamente na minha setsaída o tempo todo, apenas tinham ' Eu não os notei antes, até digitá-los acidentalmente exporte vê-los em minha make setsaída. Ainda assim, parece que há uma incompatibilidade na documentação do bash com o comportamento exportsem nomes que deve retornar uma lista de variáveis ​​exportadas, e não exportar tudo.)]

Responder1

Você pode listar todas as suas variáveis env​​e usar unset $VARIABLEpara remover todas as variáveis ​​desnecessárias do seu ambiente e assim resolver o seu problema. Você deve ter cuidado ao remover as variáveis ​​corretas, porque se você remover o PATH, por exemplo, não poderá executar nenhum comando/aplicativo.

Embora isso não explique o que deu errado com seus scripts bash_completion, isso desfaria o export.

informação relacionada