On Thu, 29 Sep 2011 17:02:28 -0400, Nick Sabalausky <a@a.a> wrote:

"Graham Fawcett" <fawc...@uwindsor.ca> wrote in message
news:j62ido$1n0s$1...@digitalmars.com...
On Thu, 29 Sep 2011 13:31:13 -0400, Nick Sabalausky wrote:

Due to process separation, the following won't work:

script.sh:
#!/bin/sh
SOME_VAR=foobar

test.d:
import std.process;
void main()
{
    system("./script.sh");
    assert(environment["SOME_VAR"] == "foobar");
}

This, of course, is because the script is run in a totally separate
process (AIUI). The same thing happens in Windows, too.

Is there some way to actually get the env that results from the script?
I'm looking for solutions for both Posix and Windows.

What about "export SOME_VAR=foobar"?


Still doesn't work.

This only passes the environment to children started after the export is done. A child process cannot affect a parent process' environment directly. Nor can a parent affect an already-running child.

-Steve

Reply via email to