2014-02-05 283 views
1

我正在設計一個需要運行命令並將其存儲爲變量的ruby程序。Ruby命令提示符命令

var = exec('some command'); 

這不符合我想要的方式,它只是打印命令提示符的輸出,然後結束程序。 那麼是否有一個函數不會結束程序,不打印cmd輸出並將信息存儲在變量中?

在此先感謝。

回答

4

您需要爲使用Ruby的內置的反引號語法,或者使用%x

output = `some command` 

output = %x(some "command") 
+0

感謝本作品完美的各種方式! – user2974834

0

Open3授予您標準輸入,標準輸出,標準錯誤和一個線程進入等待 運行其他程序時的子進程。您可以指定 程序的各種屬性,重定向,當前目錄等作爲Process.spawn。

見執行command

+0

Open3具有很多功能,但涉及文檔會扼殺OP的創造力。使用['capture2'](http://www.omniref.com/ruby/HEAD/classes/Open3#.capture2),['capture2e'](http://www.omniref.com/ruby/HEAD/class /Open3#.capture2e)或['capture3'](http://www.omniref.com/ruby/HEAD/classes/Open3#.capture3)如果不使用反引號或'%x'不是很好的起始位置足夠友好。 –