Como posso encontrar todas as variáveis e funções auto-definidas para cancelar a configuração?

0

Em um processo bash shell, defino algumas variáveis e funções aqui e ali. Então eles são difíceis de rastrear. Como posso encontrar todas as variáveis e funções definidas por mim para cancelar a configuração? Obrigado.

    
por Tim 29.07.2017 / 19:37

3 respostas

4

Não tente rastrear quais variáveis e funções você cria. Em vez disso, execute o código em uma subchave. Quando a subshell for concluída, todas as variáveis e funções definidas na subshell desaparecerão.

No bash, uma forma de colocar explicitamente comandos em um subshell é colocar os comandos dentro dos parens: (...) . Por exemplo, vamos definir duas variáveis e uma função dentro de um subshell e executar a função:

$ ( a=1; b=2; fn() { echo "a=$a b=$b"; }; fn )
a=1 b=2

Após a sub-camada terminar, todos serão apagados:

$ fn
bash: fn: command not found
    
por 29.07.2017 / 20:04
1

Rápido e sujo: compare um ambiente "vazio" com o atual

env -i bash set > baseline
set > now
diff baseline now
    
por 30.07.2017 / 03:36
0

Você pode usar compgen -v para listar todas as variáveis definidas dentro do bash e compgen -A função para listar todas as funções

    
por 29.07.2017 / 20:26