1
次の場合に適切な解決策が見つかりません。ですから、基本的には2つのシェルコマンドをパイプし、いくつかの入力データ(ここではmypassword
)を2番目のコマンドに渡します。 Enter pass phrase:
をし、私はすでに(私のmypassword
入力)パスフレーズを渡していたという事実にもかかわらず、停止します。それは、コンソールに尋ねる実行Popenプロセスに入力を渡す
import subprocess
import shlex
args1 = shlex.split("find /home/vasya/rmps/ -name *.rpm")
ps = subprocess.Popen(args1, stdout=subprocess.PIPE)
args2 = shlex.split("xargs rpmsign --addsign")
p2 = subprocess.Popen(args2, stdin=ps.stdout, stdout=subprocess.PIPE)
ps.stdout.close()
output = p2.communicate('mypassword\n')[0]
print(output)
:ここでは、問題を実証するいくつかのコードです。
私の過ちはどこにあり、どうすれば修正できますか?