3

質問:要素がスペースで区切られているRubyで配列を出力する簡単な方法はありますか?

詳細

Ruby to Benchmarkコマンドを使用して、コマンドを実行したいと思います。何かのようなもの:

 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の答えを使うべきです

【元の回答】

配列の要素をjoin。で簡単に結合できます。ARGVはアレイです。

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

再利用可能な引数文字列を生成するには:

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