-2

我已经查看并尝试了许多不同形式的打开子流程并在流程打开后对出现的提示编写响应。调用“chpass”进程并相应地回答提示的最基本方法是什么,这是在 Mac OS X 服务器上。

每种打开进程的方式都会导致脚本不回答提示。

我尝试了以下变化:

pc = Popen(['chpass',name],stdin=PIPE)
pc.communicate(oldpassword)
pc.write(oldpassword)
pc.stdin.write(oldpassword)

可能我根本不知道如何正确使用它,也许有一个非常基本的教程,其中有一个运行诸如 chpass bash 命令之类的进程并能够向其写入命令的示例。

4

1 回答 1

2

你需要的是pexpect模块。

使用示例:

 child = pexpect.spawn('scp foo myname@host.example.com:.')
 child.expect ('Password:')
 child.sendline (mypassword)

当然,scp您必须写下您运行的命令的名称。

于 2012-07-31T20:13:27.087 回答