Запустите системную команду в ruby ​​и взаимодействуйте с ней

Мне нужно запустить команду в командной строке, которая требует ответа пользователя. В случае, если это поможет, команда:

gpg --recipient "Some Name" --encrypt ~/some_file.txt

когда вы запускаете это, она о чем-то предупреждает, а затем спрашивает:

Все равно использовать этот ключ? (y/N)

Отвечая 'y', давайте закончим правильно. Я пытался использовать open4 gem, но мне не удалось заставить его правильно указать «y». Вот что я пробовал:

Open4::popen4(cmd) do |pid, stdin, stdout, stderr|
  stdin.puts "y"
  stdin.close

  puts "pid        : #{ pid }"
  puts "stdout     : #{ stdout.read.strip }"
  puts "stderr     : #{ stderr.read.strip }"
end

Что я делаю не так? Возможно ли то, что я делаю?

9
задан Andrew Marshall 18 May 2012 в 01:13
поделиться