我正在設計一個需要運行命令並將其存儲爲變量的ruby程序。Ruby命令提示符命令
var = exec('some command');
這不符合我想要的方式,它只是打印命令提示符的輸出,然後結束程序。 那麼是否有一個函數不會結束程序,不打印cmd輸出並將信息存儲在變量中?
在此先感謝。
我正在設計一個需要運行命令並將其存儲爲變量的ruby程序。Ruby命令提示符命令
var = exec('some command');
這不符合我想要的方式,它只是打印命令提示符的輸出,然後結束程序。 那麼是否有一個函數不會結束程序,不打印cmd輸出並將信息存儲在變量中?
在此先感謝。
您需要爲使用Ruby的內置的反引號語法,或者使用%x
output = `some command`
或
output = %x(some "command")
Open3授予您標準輸入,標準輸出,標準錯誤和一個線程進入等待 運行其他程序時的子進程。您可以指定 程序的各種屬性,重定向,當前目錄等作爲Process.spawn。
見執行command
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'不是很好的起始位置足夠友好。 –
感謝本作品完美的各種方式! – user2974834