Ruby执行shell命令并获取数组

时间:2013-03-26 10:32:19

标签: ruby bash shell

我从shell中获得了几行代码。是否有可能得到Array每行作为其元素?

2 个答案:

答案 0 :(得分:7)

当然,根据输出你可以拆分它。例如:

lines = `ls`.split

此解决方案独立于您用于执行程序的方法。只要你得到完整的字符串,你就可以split

答案 1 :(得分:4)

原始问题是在行上拆分,默认情况下,split函数会在空白处分割。虽然这可能就足够了,但您可能需要传递正则表达式,如:

`ls -l`.split(/$/)

返回数组中单独元素中的每一行。但是,它并没有摆脱最初的回车或换行。为此,您需要使用map函数迭代数组并将strip应用于每个数组,如:

`ls -l`.split(/$/).map(&:strip)