什么是subprocess.call()的返回值?

我不知道subprocess.call()的返回值是什么意思。

例如,下面的一段代码是否适用于Linux上的任何命令?

  cmd = "foo.txt > bar.txt" ret = subprocess.call(cmd, shell=True) if ret != 0: if ret < 0: print "Killed by signal", -ret else: print "Command failed with return code", ret else: print "SUCCESS!!" 

请赐教:-)

Solutions Collecting From Web of "什么是subprocess.call()的返回值?"

是的, Subprocess.call返回“实际过程返回码”。

您可以检查Subprocess.call和Subprocess.Popen.returncode的官方文档

这是返回代码,但请记住,这取决于子进程的作者返回代码的含义。 有一个强大的文化0意味着成功,但没有任何执行它。

你是在你所调用的命令的摆布之下。 考虑一下:

test.py

 #!/usr/bin/env python success=False if not success: exit() 

然后运行你的代码(用cmd ='test.py')将会导致成功!

仅仅是因为test.py不符合在不成功时返回一个非零值的约定。