There's no built-in Unix-standard way for a child process to modify the parent process's environment variables, but you could script it up yourself. You could have the child process dump its environment (which is really just a bunch of strings in the format "name=value"), and send it one way or another to the parent, and have the parent walk through the list and export for itself any variables that are new or different (with exceptions for things like $SHELL and $PPID of course).