如何将哪个命令的结果通过管道传递给子进程中的另一个命令?

how can I pipe result of which command to another command in subprocess?

如何将 which somecommand 的结果通过管道传输到 outerCommand,以便将我将在 shell 中执行的结果复制为 outercommand 'which somecommand'

根据文档的建议,我会避免使用低级接口Popen,在长运行中正确使用很棘手,而盲目使用[=12] =],这可能会使您暴露于 shell injection attacks.

因此,如果这就是您所需要的,我会建议一种更简单的方法:只需捕获输出并使用新 subprocess.run() API.[= 的新 capture_output 参数来使用它。 16=]

这会得到你需要的:

completed_process = subprocess.run(['outercommand', subprocess.run(['which', 'somecommand'], capture_output=True).stdout], capture_output=True)

completed_process.check_returncode()
print(completed_process.stdout.decode('utf-8'))