2
在Ruby中,我使用反引號來執行(許多)shell命令。如何獲取控制檯上顯示的shell命令輸出?Ruby - 在控制檯上顯示反向輸出
更詳細一點。如果我運行類似以下的(ansible)命令,我得到很多在控制檯上滾動的輸出的:
% 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
您需要'放置\'#{cmd} \'',但我不確定它是否會在完成之前顯示任何內容。否則,請使用[popen3](http://ruby-doc.org/stdlib-2.0.0/libdoc/open3/rdoc/Open3.html#method-c-popen3) –