我想了解 subprocess.run
:
>>> subprocess.run('false | true', shell=True)
CompletedProcess(args='false | true', returncode=0)
>>> subprocess.run(['false', '|', 'true'])
CompletedProcess(args=['false', '|', 'true'], returncode=1)
>>> subprocess.run(['false', '|', 'true'], shell=True)
CompletedProcess(args=['false', '|', 'true'], returncode=1)
看起来像是在指定 cmd
作为一个字符串列表,也设置了 pipefail
shell选项。
$ false | true
$ echo $?
0
$ set -o pipefail
$ false | true
$ echo $?
1
我在子进程模块的文档中找不到任何相关信息。我使用的是python 3.6。有谁知道这是如何工作的?