Quote from http://pubs.opengroup.org/onlinepubs/9699919799/functions/system.html
> One reviewer suggested that an implementation of system() might want to use an environment variable such as SHELL to determine which command interpreter to use. The supposed implementation would use the default command interpreter if the one specified by the environment variable was not available. This would allow a user, when using an application that prompts for command lines to be processed using system(), to specify a different command interpreter. Such an implementation is discouraged. If the alternate command interpreter did not follow the command line syntax specified in the Shell and Utilities volume of POSIX.1-2008, then changing SHELL would render system() non-conforming. This would affect applications that expected the specified behavior from system(), and since the Shell and Utilities volume of POSIX.1-2008 does not mention that SHELL affects system(), the application would not know that it needed to unset SHELL.
We really should have a means of specifying what shell we'd like to use at the call site. The fix for this issue ended up breaking some of my code without providing a nice path back to correctness (I'll write a fix up in a sec, it's just going to be more work than I expected).
Put in an enhancement request along these lines: https://issues.dlang.org/show_bug.cgi?id=15276
Comment #10 by dlang-bugzilla — 2017-07-05T15:50:48Z
*** Issue 10580 has been marked as a duplicate of this issue. ***
Comment #11 by github-bugzilla — 2017-07-19T17:42:33Z