Getting output of system() calls in Ruby के समान, मैं एक सिस्टम कमांड चला रहा हूं, लेकिन इस मामले में मुझे आदेश से STDOUT को आउटपुट करने की आवश्यकता है।मैं इसे चलाने के दौरान एक रूबी सिस्टम() कॉल के STDOUT कैसे प्राप्त करूं?
9
A
उत्तर
13
लिंक किए गए प्रश्न के रूप में, उत्तर system
का उपयोग नहीं करने के लिए system
पर इसका समर्थन नहीं करता है।
हालांकि इस बार समाधान backticks
का उपयोग नहीं करना है, लेकिन IO.popen
, जो एक आईओ ऑब्जेक्ट देता है जिसका उपयोग आप इनपुट को पढ़ने के लिए उपयोग कर सकते हैं।
+7
धन्यवाद, मैं 'IO.popen ('command_to_run' का उपयोग करके समाप्त हुआ ') {| io | जबकि (लाइन = io.gets) लाइन अंत डालता है} ' –
0
यहां मेरे समाधान
def io2stream(shell, &block)
Open3.popen3(shell) do |_, stdout, stderr|
while line = stdout.gets
block.call(line)
end
while line = stderr.gets
block.call(line)
end
end
end
io2stream("ls -la", &lambda { |str| puts str })
संबंधित मुद्दे
- 1. रूबी सिस्टम कॉल के लिए उपयोग करने के लिए मैं शैल कैसे निर्दिष्ट करूं?
- 2. मैं एक चर में पर्ल के STDOUT कैप्चर कैसे करूं?
- 3. मैं मैवेन/सरेफायर के दौरान मैनिफेस्ट को "एमवीएन टेस्ट" चलाने के दौरान मैनिफेस्ट कैसे उपलब्ध करूं?
- 4. सैंडबॉक्स वातावरण में प्रोग्राम चलाने के दौरान सिस्टम कॉल को कैसे अस्वीकार करें?
- 5. मैं रूबी से विंडोज डीएलएल कार्यों को कैसे कॉल करूं?
- 6. पोस्ट के दौरान मैं एक अलग संसाधन के जेएक्स-आरएस @ पैथ कैसे प्राप्त करूं?
- 7. सीएलआई और अपाचे 2 हैंडलर चलाने के दौरान PHP में सिस्टम पर्यावरण चर कैसे प्राप्त करें?
- 8. रूबी स्क्रिप्ट के लिए फ़ाइल करने के लिए मैं stderr और stdout को रीडायरेक्ट कैसे करूं?
- 9. सभी परीक्षणों को चलाने के दौरान कुछ श्रेणियों को अनदेखा करने के लिए मैं रीशेपर कैसे प्राप्त करूं?
- 10. सीएलआई/रूबी सिस्टम कॉल के माध्यम से बंडल इंस्टॉल
- 11. कॉल के दौरान आउटगोइंग कॉल अवधि प्राप्त करना संभव है?
- 12. मैं वेब संदर्भ के बिना एक webservice कैसे कॉल करूं?
- 13. एंड्रॉइड में मैं इसे चलाने के दौरान एक आरटीएसपी धारा को फ़ाइल में कैसे सहेज सकता हूं?
- 14. रूबी IO.popen STDOUT बफरिंग
- 15. मैं सी # में विंडोज 8 चलाने वाली मशीन के लिए एक अद्वितीय पहचानकर्ता कैसे प्राप्त करूं?
- 16. मैं टर्मिनल और लॉग फ़ाइल पर जाने के लिए STDOUT और STDERR दोनों कैसे प्राप्त करूं?
- 17. व्यस्त लूप के दौरान मैं प्रगति कैसे प्रदर्शित करूं?
- 18. सी से सिस्टम कॉल का उपयोग करके, मैं सीपीयू का उपयोग कैसे प्राप्त करूं?
- 19. `hg com` के दौरान diff दिखाने के लिए मैं Mercurial कैसे प्राप्त करूं?
- 20. विंडो सीमा चौड़ाई और ऊंचाई - मैं इसे कैसे प्राप्त करूं?
- 21. रूबी स्क्रिप्ट में कमांड शैल के लिए मैं पर्यावरण चर कैसे स्रोत करूं?
- 22. कॉल के दौरान रन स्पीच रिकॉग्नाइज़र
- 23. मैं कमांड लाइन टेक्स्ट कैप्चर कैसे करूं जो stdout पर नहीं भेजा गया है?
- 24. मैं रूबी ऑब्जेक्ट के तरीकों का निरीक्षण कैसे करूं?
- 25. मैं पर्ल के सिस्टम फ़ंक्शन के साथ उत्पन्न प्रक्रिया की पीआईडी कैसे प्राप्त करूं?
- 26. रूबी में eval चलाने के लिए एक सुरक्षित तरीका है?
- 27. मैं रूबी के साथ सेलेनियम का उपयोग कैसे करूं?
- 28. सिस्टम कॉल?
- 29. मैं Win32 में एक विशिष्ट TIME_ZONE_INFORMATION संरचना कैसे प्राप्त करूं?
- 30. मैं jQuery AJAX कॉल से प्रतिक्रिया समय कैसे प्राप्त करूं?
यह उत्सुक है कि आप कुछ भी विशेष करने की होना चाहिए है। मेरे अनुभव में, जब मैं 'सिस्टम' का उपयोग कर प्रोग्राम चलाता हूं, तो बाल कार्यक्रम का स्टडआउट पेरेंट प्रोग्राम के स्टडआउट पर जाता है, जो आपको लगता है कि ऐसा लगता है। –
यह भी काम कर सकता है: http://stackoverflow.com/questions/2215455/printing-to-screen-in-a-rake-task/2215986#2215986 –