В Ruby Я использую backticks для выполнения (многих) команд оболочки. Как получить вывод команды оболочки, отображаемый на консоли?Ruby - отображать выходные результаты на консоли
Немного подробней. Если я запускаю (анзибль) команду, как в следующем, я получаю много прокрутки вывода на консоль:
% ansible-playbook config.yml -e foo=bar -e baz=qux
PLAY [base setup] **************************************************************
TASK [setup] *******************************************************************
ok: [10.99.66.210]
... etc, etc
Однако если выполнить ту же команду с Рубином (используя кавычку), я не вижу вывод на консоль:
# cmd = ansible-playbook config.yml -e foo=bar -e baz=qux
`#{cmd}`
Что прискорбно, так как я хотел бы видеть выход для того, чтобы отладить. Я мог бы перенаправить вывод из сценария Ruby в файл журнала (хвост), однако я хочу видеть результат как это происходит.
Я не думаю, что вам нужно интерполировать' cmd' с '# {} ' – marcosbeirigo
Вам нужно' puts \ '# {cmd} \' ', но я не уверен, что он покажет что-нибудь, пока оно не завершится. В противном случае используйте [popen3] (http://ruby-doc.org/stdlib-2.0.0/libdoc/open3/rdoc/Open3.html#method-c-popen3) –