I'm wring a python script for running some command. Some of those commands require user to input password, I did try to input data in their stdin, but it doesn't work, here is two simple python program represent the problem
input.py
import getpassprint raw_input('text1:')
print getpass.getpass('pass1:')
print getpass.getpass('pass2:')
put_data.py
import subprocess
import getpassdef run(cmd, input=None):stdin=Noneif input:stdin=subprocess.PIPEp = subprocess.Popen(cmd, shell=True, stdin=stdin)p.communicate(input)if p.returncode:raise Exception('Failed to run command %r' % cmd)input ="""text1
password1
password2
"""
run('python test.py', input)
And here is the output
[guest@host01 ~]# python put_data.py
text1:text1
pass1:
It just stop there on the pass1 field. Here is the problem, why I can't put data to stdin to feed data to the password field? How can I write data to password fields?