On Thu, 29 Sep 2011 17:20:44 -0400, Steven Schveighoffer wrote: > 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. >
Right. Sorry for the from-the-hip suggestion, I hadn't read the question too carefully. :) Graham > -Steve