我正在使用pry,我想捕获,并使用shell命令的输出。
例如,如果我运行
pry(main)> .ls
我想把文件列表放到一个可以在Ruby中使用的数组中。
我该怎么做?
答案 0 :(得分:5)
这是一个非常古老的问题,但无论如何我都会回答它。从pry命令中获取数据有两种主要方法。第一个是命令将keep_retval
选项设置为true,而shell命令则不是。第二,是使用虚拟管道。在您的示例中,这可以完成:
fizz = []
.ls | {|listing| fizz = listing.split("\n")} # can also be written as
.ls do |listing|
fizz = listing.split("\n")
end
答案 1 :(得分:3)
我认为这是某种狡猾的魔法; - )
在快速查看正在发生的事情后(我没有看到pry的来源),你可能想要使用它:
`ls`.split("\n")
或
Dir['./*']
这个解决方案的优点是它可以在pry