Você pode gravar o ambiente em um arquivo com export -p
e lê-lo periodicamente nas outras instâncias com .
(o comando include). Mas, como você observou, se houver modificações simultâneas, o resultado não será bonito.
Se você quiser que as modificações sejam propagadas instantaneamente, será necessário usar um wrapper em torno do export
builtin que também propaga as alterações para os outros shells. No Linux, você pode usar o utilitário flock
.
global_export () {
{
flock 0
. /path/to/env
[ $# -eq 0 ] || export "$@"
export -p >/path/to/env
} </path/to/env
}
Observe que você precisará chamar global_export
sempre que atribuir um novo valor a uma variável exportada.
Isso é um pouco desajeitado. É provável que exista uma maneira melhor de resolver seu problema. A maneira mais óbvia é ter o comando que estiver usando essas variáveis de ambiente para ler os arquivos de configuração.