首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Fabric捕获交互式对话框输出

问Python Fabric捕获交互式对话框输出
EN

Stack Overflow用户
提问于 2015-10-12 11:22:18
回答 2查看 138关注 0票数 1

我想使用Fabric为远程服务器上的用户设置密码。

假设我有一个名为“john”的用户,我想为他设置一个默认密码'123‘。

理想情况下,我想这样做:

代码语言:javascript
复制
run 'passwd john' on remote machine
detect when linux prompts for 'Enter new UNIX password:'
automatically enters the password
detect when linux prompts for 'Retype new UNIX password:'
automatically reenters the password

这就是我尝试过的:

代码语言:javascript
复制
result = run('passwd {}'.format(username))

这个语句的问题是,当Linux提示输入密码时,“结果”不会被捕获。它只在输入密码之后才返回。

有什么方法可以自动实现这样的交互式提示吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-12 11:48:10

您可以使用提示符

代码语言:javascript
复制
password = '123'
with settings(prompts={
                  'Enter new UNIX password: ': password,
                  'Retype new UNIX password: ': password
              }):
    run('passwd {}'.format(username))
票数 0
EN

Stack Overflow用户

发布于 2015-10-12 11:27:33

您可以使用fexpect进行交互提示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33079865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档