eryksun added the comment:

I expect Popen's shell=True option to use the same shell as os.system.  The 
POSIX spec for the [system function][1] requires running sh, as follows:

    execl(<shell path>, "sh", "-c", command, (char *)0);

glibc uses "/bin/sh" for the shell path. Modifying the SHELL environment 
variable doesn't affect the behavior of os.system. I would be surprised if 
Popen's shell=True had been designed like that. Thankfully it's too late to 
change this since it could break existing code. ;-)

The story is different on Windows. The CRT's system() prefers the shell that's 
set in the ComSpec environment variable. So on Windows Popen uses 
os.environ.get("COMSPEC", "cmd.exe").

[1]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/system.html

----------
nosy: +eryksun

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue24919>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to