2014-02-05 230 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'不是很好的起始位置足够友好。 –