Ruby执行shell命令并获取数组

tol*_*gap 3 ruby bash shell

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

Jor*_*eña 7

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

lines = `ls`.split
Run Code Online (Sandbox Code Playgroud)

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


小智 6

最初的问题是按行拆分split,默认情况下,该函数在空白处拆分。虽然这可能就足够了,但您可能希望传入一个正则表达式,例如:

`ls -l`.split(/$/)
Run Code Online (Sandbox Code Playgroud)

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

`ls -l`.split(/$/).map(&:strip)
Run Code Online (Sandbox Code Playgroud)