subprocess.Popen() 允许您通过“可执行”参数传递您选择的外壳。
我选择通过“/bin/tcsh”,我不希望 tcsh 读取我的~/.cshrc
.
tcsh 手册说我需要通过-f
才能/bin/tcsh
做到这一点。
如何让 Popen 使用 -f 选项执行 /bin/tcsh?
import subprocess
cmd = ["echo hi"]
print cmd
proc = subprocess.Popen(cmd, shell=False, executable="/bin/tcsh", stderr=subprocess.PIPE, stdout=subprocess.PIPE)
return_code = proc.wait()
for line in proc.stdout:
print("stdout: " + line.rstrip())
for line in proc.stderr:
print("stderr: " + line.rstrip())
print return_code