
Eu acidentalmente digitei o comando export
em 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 export
sem 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 set
Bash 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 set
meus 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 set
saída o tempo todo, apenas tinham ' Eu não os notei antes, até digitá-los acidentalmente export
e vê-los em minha make set
saída. Ainda assim, parece que há uma incompatibilidade na documentação do bash com o comportamento export
sem 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 $VARIABLE
para 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
.