Se você souber antecipadamente que deseja fazer isso, poderá executar o comando source
em um subshell e reverter seus efeitos (na medida em que estejam com o escopo definido shell ou variáveis de ambiente) ao sair dessa subcamada.
Assim, se você executar:
(source set-variables; run-command-with-variables); run-command-without-variables
... então run-command-with-variables
terá essas variáveis configuradas, mas run-command-without-variables
não.
Também é possível identificar quais funções shell foram definidas pela origem de um script, verificando os metadados associados a essas funções, de modo que se poderia teoricamente escrever uma função shell ou um script que anule todas as outras funções definidas dentro de um determinado arquivo (parametrizado). Para variáveis não funcionais, no entanto, não há informações armazenadas para permitir que elas sejam desconfiguradas (muito menos identificando valores anteriores).