当前位置: 首页 > 面试题库 >

如何使Fabric自动(而不是用户交互)与Shell命令交互?结合pexpect?

徐晔
2023-03-14
问题内容

寻求方法是使Fabric自动(而不是用户交互)与Shell命令进行交互(不仅是密码请求,还包括在没有“标准输入/交互替代”之类的apt- get install -y情况下要求用户输入的信息)。

这个问题以及这些Fabric文档提示,Fabric只能将交互性“推回”运行Fabric程序的人类用户。寻求完全自动化而不需要任何人在场。还没有解决当前的“实际”问题,只是为可能的未来障碍做准备。

如果Fabric无法自动处理所有标准输入/提示,将其与pexpect(或类似的替代机制)结合使用可能会有用吗?希望它不必是“非此即彼”的事情。为什么不在适当的情况下在同一个程序/自动化中同时利用两者(pexpect和Fabric)?


问题答案:

作为格伦,我要说使用pexpect。此外,

看看我写的这个包装器,以编写来自Fabric的pexpect行为的脚本:

from ilogue.fexpect import expect, expecting, run

prompts = []
prompts += expect('What is your name?','John')
prompts += expect('Where do you live?','New York')

with expecting(prompts):
    run('command')

另请参阅我在fexpect上的博客文章或如何使用pexpect处理结构提示



 类似资料:
  • 问题内容: 我正在尝试创建一个程序,允许我通过带有参数的终端(如果您想知道,它是用于树莓派的OmxPlayer)来执行命令,但是我希望能够在启动后与它进行交互命令。 例如,我要执行以下操作:omxplayer -win x1 y1 x2 y2,然后可以按“ p”暂停视频/音频媒体 我已经有了一些可以用参数启动omxplayer的东西(实际上是“ ls”,但是它应该以完全相同的方式工作),但是我不了

  • MOAC母链客户端使用了和以太坊类似的交互式命令行。用户可以在命令行(console)中执行内置的JAVA script命令或者利用脚本(script),输出结果显示在命令行中。 这里使用的chain3对象,是MOAC参考以太坊,而开发的一套javascript库,目的是让应用程序能够与MOAC的VNODE和SCS节点进行通信。注意,这里有两层,moac启动了一个MOAC VNODE节点,cons

  • 它将我带到Google Cloud登录页面,我成功地通过该页面进行了身份验证,然后在shell中获得了以下内容: 在此之后,我尝试发出以下命令: null null 但这些IAM政策并没有像我预期的那样真正发挥作用。 我应该改用服务帐户吗?

  • 从v1.1.1开始,应用链客户端SCS也支持使用了和以太坊类似的交互式命令行。用户可以在命令行(console)中执行内置的JAVA script命令或者利用脚本(script),输出结果显示在命令行中。 这里使用的chain3对象,是MOAC参考以太坊,而开发的一套javascript库,目的是让应用程序能够与MOAC的VNODE和SCS节点进行通信。注意,这里有两层,moac启动了一个MOAC

  • eth.contract可用于定义符合其ABI定义中所述的合约接口的合约类。 var Multiply7 = eth.contract(contract.info.abiDefinition); var myMultiply7 = Multiply7.at(address); 现在,所有在abi中指定的函数调用都可以在合约实例中使用。您只需调用合同上的实例和chain上的那些方法,例如:sendT

  • 这个剧本 }); 正在引起通信路由的错误 /updatechat 但是如果在前一段代码中,我替换为 这个"var=request.form['var']"表单在我的代码中的几个不同的路由上工作