Python结构捕获交互式对话框输出

时间:2015-10-12 11:22:19

标签: python fabric

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

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

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

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

这就是我的尝试:

result = run('passwd {}'.format(username))

此声明的问题是当linux提示输入密码时,'result'不会捕获。它仅在输入密码后返回。

有没有办法自动化这样的交互式提示?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用$location.path('/HomePage'); 进行交互式提示。

答案 1 :(得分:0)

您可以使用prompts

password = '123'
with settings(prompts={
                  'Enter new UNIX password: ': password,
                  'Retype new UNIX password: ': password
              }):
    run('passwd {}'.format(username))