3

ユーザー入力が必要なbash スクリプト ( @command) を実行しようとしています。次のコードを使用してそのスクリプト入力をフィードしようとしています。

Open3.popen3(@command) do |stdin, stdout, stderr|
  stdin.write("y")
  stdout.gets
終わり

スクリプトのアイデアは次のとおりです。

exec sudo su -c "何らかのコマンド" $username

誰かが私が間違っていることを教えてくれたり、これを別の方法で実装する方法について何か提案があれば、それは大歓迎です。


また、次のようにスクリプトを実行できます。

@output = `#{@command}`

この場合、アプリを実行しているコンソールでスクリプト出力の内容を確認できます。とにかくその場所に入力をフィードする場合は、それも機能します。

4

2 に答える 2

0
out_err, status = Open3.capture2e(@command, :stdin_data => "y\r\n")
print out_err
于 2014-11-30T09:58:18.410 に答える