Não, não há como filtrar variáveis por data ou por quem a possuiu. Você PODERIA definir todas as variáveis existentes como somente leitura e depois usar declare -p
para filtrá-las. Mas uma maneira mais comum de resolver isso é prefixar todos os seus vairables com __project_
(onde project é o que for). As variáveis ficam longas, mas essa parece ser a maneira mais segura.
Sua idéia de salvar as variáveis na inicialização não é ruim. Você pode salvar apenas os nomes com
declare |awk -F= '/=/ { print $1 }' >tmpfile.$$.shvars
Ou voltando à ideia somente leitura:
while read var ; do declare -r var; done < tmpfile.$$.shvars
Agora você declara o seu e, mais tarde, quando terminar:
declare -p |awk '$2 !~ /^.r$/ { print $3 }' |cut -d= -f1
mostra a lista de suas variáveis. A desvantagem é que todas essas variáveis são agora somente leitura que não deveriam ser.