gpt4 book ai didi

Python执行复杂的shell命令

转载 作者:太空宇宙 更新时间:2023-11-04 07:03:06 25 4
gpt4 key购买 nike

您好,我必须执行一个 shell 命令:diff <(ssh -n root@10.22.254.34 cat/vms/cloudburst.qcow2.*) <(ssh -n root@10.22.254.101 cat/vms/cloudburst.qcow2 )我试过了

cmd="diff <(ssh -n root@10.22.254.34 cat /vms/cloudburst.qcow2.*) <(ssh -n root@10.22.254.101 cat /vms/cloudburst.qcow2)"
args = shlex.split(cmd)
output,error = subprocess.Popen(args,stdout = subprocess.PIPE, stderr= subprocess.PIPE).communicate()

但是我得到了一个错误 diff: extra operand cat

我是 python 的新手。任何帮助将不胜感激

最佳答案

您正在使用 <(...) (进程替换)语法,由 shell 解释。提供shell=True到 Popen 让它使用 shell:

cmd = "diff <(ssh -n root@10.22.254.34 cat /vms/cloudburst.qcow2.*) <(ssh -n root@10.22.254.101 cat /vms/cloudburst.qcow2)"
output,error = subprocess.Popen(cmd, shell=True, executable="/bin/bash", stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()

由于您不想要 Bourne shell (/bin/sh),请使用可执行参数来确定要使用的 shell。

关于Python执行复杂的shell命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11003039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com