2016-02-05 47 views
3

我知道我可以做简单的事情,像System.cmd("echo", ["hello"])但假设我想要做这样的事情在shell我可以做类似运行Ruby进程制作系统的选项调用

通常情况下:ruby -e 'puts "hello world"

我已经试过了一堆类似的东西变化:

System.cmd("ruby", ["-e", "'puts \"hello world\"'"])没有多少运气

我可以叫下来二郎神os模块,但是这似乎并不理想,因为我需要我的字符串明确分割成字符,重铸它,以及计算出如何捕捉除了退出代码的结果

回答

4
System.cmd("ruby", ["-e", "puts \"hello world\""]) 

似乎工作:)

+0

哦jeez,花了几个小时才知道报价将被添加为我。谢谢! –

+1

System.cmd更像exec,即ruby版本。它永远不会通过shell,因此您不必执行shell cmd行引用。这既好又坏。你不能做I/O重定向,但它稍微安全一些。 –

+0

谢谢,很高兴知道! –