当前位置:  开发笔记 > 编程语言 > 正文

Python Fabric:如何处理任意远程shell提示输入?

如何解决《PythonFabric:如何处理任意远程shell提示输入?》经验,为你挑选了1个好方法。

这与这个问题有关,但略有不同:我不需要传递'yes'或'no',而是需要Fabric将任意字符串传递给远程shell.

例如,如果远程shell提示"你叫什么名字?" 然后我需要'先,最后'喂它.

澄清:我知道我说过任意输入,但当我尝试做一个git pull时,我真的试图将它用于SSH密钥passwd提示.

更新#1:得到了Jeff Forcier @bitprophet的回复

这就像现在的#1疣:(需要通过隧道发送带外密钥代理或远程提示).

我的意思是在Fabric中添加这些东西的支持,这是我们需要做的才能让网络传播的git ops工作

添加一种简单的方法来启动OOB ssh代理友好的隧道将更容易/更快,最有可能.很快可能

Jasper van d.. 5

我已经在邮件列表的Fabric中为这个功能提出了一个API,最后我自己写了一些东西:

from 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



1> Jasper van d..:

我已经在邮件列表的Fabric中为这个功能提出了一个API,最后我自己写了一些东西:

from 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

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有