如何将哪个命令的结果通过管道传递给子进程中的另一个命令?
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'))
如何将 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'))