Por interpretação estrita, o que você quer fazer é impossível. Então a questão é quanto você tem que trapacear para fazer algo assim? Você precisa bash, um PROMPT_COMMAND e dois arquivos temporários. você também terá que aceitar que o shell não será atualizado até o comando após a conclusão da tarefa em segundo plano. Também recomendaria usar o make no processo de segundo plano, para que a tarefa demorada seja executada apenas conforme necessário.
Primeiro configure seu gancho de evento:
PROMPT_COMMAND='[[ -e file2 ]] && { . file2; rm file2 }'
depois, desligue o processo em segundo plano
(echo export foo=1 > file1 && mv file1 file2 )&
Por que o mv
? A presença de arquivo2 indica que a tarefa está completa e que o arquivo pode ser analisado, para que você possa levar seu arquivo de criação de tempo doce1.