命令框架以识别Xcode是否在Mac上运行: cmd = "ps -ax | grep -v grep | grep Xcode"
如果Xcode没有运行,那么上面的命令适用Popen于subprocess模块的方法,但是提出了一个CalledProcessErrorwith check_output方法.我试图stderr通过以下代码检查,但未能获得适当的信息来理解原因.
from subprocess import check_output, STDOUT, CalledProcessError
psCmd = "ps -ax | grep -v grep | grep Xcode"
o = None
try:
o = check_output(psCmd, stderr=STDOUT, shell=True)
except CalledProcessError as ex:
print 'Error:', ex, o
Run Code Online (Sandbox Code Playgroud)
异常消息如下:
Error: Command 'ps -ax | grep -v grep | grep Xcode' returned non-zero exit status 1 None
问题:为什么上面的命令适用于Popen,但是check_output失败了?
注意:如果Xcode正在运行,则命令适用于这两种方法.