我如何响应操作系统?

2024-07-04 13:01:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做点什么:

from subprocess import Popen
p = Popen(["vagrant", "ssh", "vmname", "-c", '"pvcreate -ff /dev/sdb"'])

但它需要用户输入。而且,那也没用。它们给出错误:bash: pvcreate -ff /dev/sdb: command not found,因为它寻找的是一个带有参数的程序pvcreate -ff /dev/sdb,而不是{}。我也先试过这个:

^{pr2}$

并采用了以下方法:

os.system("vagrant ssh vmname -c 'pvcreate -ff /dev/sdb'")

但是当它提示我时,我需要说是。我也试过这些方法:

os.system("yes | vagrant ssh vmname -c 'pvcreate -ff /dev/sdb'")
os.system("echo y | vagrant ssh vmname -c 'pvcreate -ff /dev/sdb'")

是否可以使用os.system响应提示?在


Tags: 方法用户fromdevimportossystemssh
1条回答
网友
1楼 · 发布于 2024-07-04 13:01:25

我建议使用列表形式的调用。在

import subprocess
command = ["vagrant", "ssh", "vmname", "-c", "pvcreate -ff /db/sdb"]
output,error  = subprocess.Popen(
                command, universal_newlines=True,
                stdout=subprocess.PIPE,  
                stderr=subprocess.PIPE).communicate()

这表示将要传递的一组参数,从而消除了在shell引用时的混乱。在

相关问题 更多 >

    热门问题