我已经查看并查看并尝试了许多不同形式的打开子进程并对进程打开时出现的提示编写响应。调用“chpass”过程并相应地回答提示的最基本方法是什么,这是在Mac OS X服务器上。
每个打开过程的方式都会导致脚本无法回答提示。
我尝试了各种变体:
pc = Popen(['chpass',name],stdin=PIPE)
pc.communicate(oldpassword)
pc.write(oldpassword)
pc.stdin.write(oldpassword)
可能我根本不知道如何正确使用它,也许有一个非常基本的教程,其中有一个运行chpass bash命令的过程并能够向其编写命令的示例。
答案 0 :(得分:2)
您需要的是pexpect
模块。
使用示例:
child = pexpect.spawn('scp foo myname@host.example.com:.')
child.expect ('Password:')
child.sendline (mypassword)
当然,您必须写下您运行的命令的名称而不是scp
。