http://qs321.pair.com?node_id=99863


in reply to Can you import ENV variables at run time?

The problem is that users don't have environment variables, processes do. What you sees in your environment variables when logged into an interactive shell is the result of that shell running some shell scripts (like .profile, .bashrc, /etc/profile, etc., depending on the shell).

There are a few you could guess at from the contents of the passwd file: home directory, initial shell; but past this it's going to be hard to guess what the environment variable would have been.

If you run your scripts using the shell (after setting $HOME, $USER, etc.) you may be able to get the shell to interpret these files. For instance, under bash you can do this:

system("/bin/bash --login -c $yourScript");
and get the environment variables set.

update: I realize that not everyone has the same shell; you'd want to use getpwuid to get the passwd file setting for login shell and HOME. tilly's suggestion sounds good.