如何使用命令替换将 ruby 脚本的输出作为参数传递给 shell 命令?

How to pass a ruby script's output as arguments to a shell command using command substitution?

我在 a_script.rb 中有以下内容:

if ARGV.empty?
    puts "string_without_spaces 'string with spaces'"
else
    p ARGV
end

当我运行:

ruby a_script.rb `ruby a_script.rb`

我得到以下输出:

["string_without_spaces", "'string", "with", "spaces'"]

但是,我希望得到以下输出:

["string_without_spaces", "string with spaces"]

如何更改脚本以获得所需的输出?

问题出在您的 bash 命令中。反引号正在转义 "'

您可以使用xargs

ruby a_script.rb | xargs ruby a_script.rb