3

问题:有没有一种简单的方法可以在 Ruby 中打印出元素由空格分隔的数组?

详情

我想使用 Ruby 对命令进行基准测试并运行该命令。就像是:

 script.rb ./command_name arg1 arg2 arg3 ...

例如:

 script.rb ls -lh

应该运行ls -lh。我试图这样做:

require 'benchmark'
puts Benchmark.measure{system(ARGV.to_s)}

(注意忽略这个问题的基准,我只是将其包括在内,因为我正在使用它)但这不起作用,因为 ARGV 打印时没有空格。例如ls -lh变成ls-lh. 显然,我可以通过解析 ARGV 数组并在循环中的元素之间插入空格来创建自己的字符串。但我认为有一个更优雅的 Ruby 解决方案,但我还没有弄清楚,所以我想知道是否有人有建议。

4

2 回答 2

6

[更新]

你应该使用l0b0 的答案

[原答案]

您可以轻松地将 Array 的元素join. ARGV 是一个数组。

ARGV.join(" ")
于 2012-05-12T03:16:33.163 回答
3

要生成可重用的参数字符串:

ARGV.map{|arg| Shellwords.escape arg}.join(' ')
于 2019-03-14T00:32:15.893 回答