Estou trabalhando em um script e realmente me ajudaria, nesse contexto, se eu pudesse ver um dump de todos os nomes e valores de variáveis definidas pelo script. Aqui está um exemplo:
foo="1"
bar="2"
print_script_variables
baz="3"
print_script_variables
Isso geraria:
foo="1"
bar="2"
foo="1"
bar="2"
baz="3"
Existe algo como print_script_variables
? Tenho a sensação de que analisar os scripts que você está executando é uma tarefa tola.
Se isso não existir, eu apenas digitaria um monte de echo
comandos à mão. Isso é meio chato, porque eu gostaria de mudar para onde coloco print_script_variables
enquanto soluciono problemas sem ter que me preocupar com quais variáveis entram e saem do escopo.
Este é um script bash, mas eu uso zsh no meu terminal, então algo que funcionasse em ambos seria o ideal.
Adicionando à resposta do muru, você pode armazenar os nomes das variáveis de ambiente no início do script e filtrar as variáveis de ambiente sempre que a função print_script_variables for chamada. Para uma maneira compatível com POSIX de fazer isso, use o utilitário set para listar todas as variáveis no início do script e armazená-las em um arquivo temporário. Quando a função print_script_variables é invocada, use diff para filtrar as variáveis que você não precisa, ou seja,
Editar
Como você precisa de uma maneira de executar automaticamente a primeira linha, você pode usar o utilitário dot (ou source) para executar automaticamente a linha no início de um script. Você deve armazenar a primeira linha e a definição da função em um arquivo, digamos
print_script_variables
:e fonte desse arquivo no início do seu script assim