os.system()在哪个linux shell下执行命令?

2023-11-25

我在用/bin/tcsh作为我的默认外壳。

然而,tcsh 风格的命令os.system('setenv VAR val')对我不起作用。但os.system('export VAR=val') works.

所以我的问题是我怎样才能知道os.system()在哪个 shell 下运行命令?


刚刚在读书从 Python 执行 BASH, then 17.1。 subprocess — 子流程管理 — Python v2.7.3 文档,我看到了executable争论;它似乎有效:

$ python
Python 2.7.1+ (r271:86832, Sep 27 2012, 21:16:52) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print os.popen("echo $0").read()
sh
>>> import subprocess
>>> print subprocess.call("echo $0", shell=True).read()
/bin/sh
>>> print subprocess.Popen("echo $0", stdout=subprocess.PIPE, shell=True).stdout.read()
/bin/sh
>>> print subprocess.Popen("echo $0", stdout=subprocess.PIPE, shell=True, executable="/bin/bash").stdout.read()
/bin/bash
>>> print subprocess.Popen("cat <(echo TEST)", stdout=subprocess.PIPE, shell=True).stdout.read()
/bin/sh: Syntax error: "(" unexpected
>>> print subprocess.Popen("cat <(echo TEST)", stdout=subprocess.PIPE, shell=True, executable="/bin/bash").stdout.read()
TEST

希望这对某人有帮助,
Cheers!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

os.system()在哪个linux shell下执行命令? 的相关文章