我正在尝试bash在 Python 3 中执行几行并分别检查每一行的状态。
我首先尝试使用gestatusoutputfrom subprocess,但每一行都在一个不与其他人通信的单独进程中运行(为简单起见,给定的 MWE 包括设置一个变量,但我打算在我的实际代码中做的是比这更复杂——我知道os.environ这个非常具体的例子):
from subprocess import getstatusoutput as cmd
stat, out = cmd("export TEST=1")
stat, out = cmd("echo $TEST")
因此将返回:
>>> print(out)
(0, "")
然后我尝试了以下方法:
cmdline = """export TEST=1
echo $TEST"""
stat, out = cmd(cmdline)
这有效但迫使我解析输出,特别是如果我想检查第一个命令echo的状态(如果有效,返回的状态cmd是0之前发生的任何事情),这不是很健壮。
我看到一些东西在使用Popen(仍然来自subprocess),但无法有效地使用它。
任何帮助,将不胜感激!
倚天杖
相关分类