我的Ruby腳本正在運行一個shell命令並解析它的輸出。但是,它似乎首先執行命令並將輸出保存在一個數組中。我希望能夠在打印時實時訪問輸出行。我玩過線程,但沒有得到它的工作。有什麼建議麼?Ruby能否像訪問shell命令一樣訪問輸出?
12
A
回答
21
您正在尋找管。這裏有一個例子:
# This example runs the netstat command via a pipe
# and processes the data in Ruby as it come back
pipe = IO.popen("netstat 3")
while (line = pipe.gets)
print line
print "and"
end
0
當調用方法/功能來運行系統/ shell命令解釋程序產生另一個進程來運行它,並等待它完成,然後給你的輸出。
即使你使用線程,你會做到的是不要讓你的程序同時運行命令掛起,但你仍然不會得到輸出,直到對其做的唯一的事情。
我認爲你可以做到與管道,但我不知道怎麼樣。
@Marcel得到它。
相關問題
- 1. 訪問VBA Shell命令不起作用
- 2. 訪問命令WPF
- 3. 訪問在逃逸中的最後一個git命令輸出
- 4. 訪問問題:輸出不能在訪問2007年
- 5. 是否有訪問命令比<>
- 6. 如何像訪問字典一樣訪問班級數據
- 7. 訪問命令行參數
- 8. 我怎樣才能從父指令訪問ngModel的輸入/ angularjs
- 9. 訪問像數組一樣的成員?
- 10. OSX Dashboard Widget命令行訪問問題
- 11. 訪問一個Jar的多個輸出在shell腳本
- 12. 管道輸出命令shell命令
- 13. 你能訪問陷阱中退出命令的代碼嗎?
- 14. NSTextView的Shell命令輸出
- 15. Windows Shell命令顯示文件名和上次訪問時間
- 16. 從shell命令訪問正在運行的java程序
- 17. 在必須訪問awk命令的awk腳本中使用shell命令
- 18. 格式化一個shell命令輸出
- 19. 得到一個shell命令的輸出
- 20. 通過RPC訪問Ruby從Ruby通過RPC訪問Ruby
- 21. 如何訪問GUI輸出?
- 22. 訪問格式表輸出
- 23. 訪問查詢 - 不一樣
- 24. socket.io是否具有像sockjs一樣的原始WebSocket訪問?
- 25. 訪問令牌?
- 26. 是否有可能訪問
- 27. 訪問Ruby線程
- 28. Ruby訪問網頁
- 29. authlogic單一訪問令牌
- 30. 未經授權訪問訪問令牌
優秀的答案,非常感謝! – Ciryon 2010-04-30 06:12:59
輸出實際上是緩衝的,直到命令完成,然後你會看到輸出,如果你不關心實時性。 – user180574 2015-10-14 21:03:54