ruby - How can I have console output display to stdout AND store it in a variable? -


अगर मैं ऐसा करता हूं:

  आउटपुट =% x {some_script}   

... तो मेरे पास stdout में मुद्रित सामान आउटपुट में संग्रहीत है; लेकिन मैं नहीं इसे स्क्रीन पर दिखाई देता है।

दूसरी ओर, अगर मैं ऐसा करता हूं:

  success = system " Some_script "  

... तो मुझे स्क्रीन पर दिखाई देने वाला आउटपुट दिखाई देता है, लेकिन मेरे पास यह एक चर में ( सफलता ) एक बूलियन धारण नहीं है मान)।

क्या दोनों को पाने का कोई तरीका है? मुझे पता है कि मैं यह कर सकता हूं:

  आउटपुट =% x {some_script} आउटपुट डालता है   

लेकिन समस्या यह है कि some_script < / कोड> एक बहुत लंबे समय से चलने वाली स्क्रिप्ट हो सकती है, जिस स्थिति में मैं कुछ भी नहीं जब तक कि पूरी चीज समाप्त नहीं हो जाती। मैं आउटपुट को देखना पसंद करता हूं क्योंकि यह उत्पादन किया गया है, और जब यह पूरा हो चुका है तो यह सभी आउटपुट चर में संग्रहीत है।

यह IO.popen के साथ एक समाधान है:

  की आवश्यकता होती है 'stringio 'आउटपुट = स्ट्रिंग आईओ.न्यूव IO.popen ("ls") करो | पाइप | पाइप.ईच करो | लाइन | Output.puts लाइन लाइन अंत अंत डालता है output.string # = & gt; स्ट्रिंग के रूप में `आउटपुट` की सामग्री को आउटपुट करता है    

Comments

Popular posts from this blog

mysql - BLOB/TEXT column 'value' used in key specification without a key length -

memcached - Django cache performance -