Python结构如何为用户提示发送密码和是/否

时间:2014-10-28 17:51:03

标签: python shell hadoop fabric

我创建了一个包含多个主机的fabfile。

我正在自动化我的实验。当我运行命令“sudo adduser --ingroup hadoop hduser”时,它将要求以下内容。

  1. 新的unix密码
  2. 确认密码。
  3. 姓名
  4. 间,pH值等
  5. 这个信息是否正确? Y / N
  6. 我想在不提示用户的情况下将所有这些信息作为脚本的一部分传递。我怎么能这样做?

    由于

    Navaz

2 个答案:

答案 0 :(得分:1)

你为什么不用管道?

例如,对于自动自动接受,只需使用yes,它只输出一个无休止的y流。

yes | rm *.txt

在你的情况下:

local('echo 'your_super_password\n' | sudo adduser --ingroup hadoop hduser')

答案 1 :(得分:1)

另一种选择是使用fexpect,这是一种结构扩展,可让您响应提示:

from ilogue.fexpect import expect, expecting, run 

prompts = []
prompts += expect('What is your full name?','John Doe')
prompts += expect('is this information Correct? Y/N','Y')

with expecting(prompts):
    sudo('adduser --ingroup hadoop hduser')