如何使用命令替换将 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
我在 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