如何在Ruby中访问原始命令行参数字符串?

Bub*_*lee 4 ruby command-line-arguments

我正在尝试访问Ruby中的原始命令行参数字符串(即 - 不使用预拆分/分离的ARGV数组).有谁知道如何做到这一点?例如:

$> ruby test.rb command "line" arguments
Run Code Online (Sandbox Code Playgroud)

我希望能够判断'line'是否有引号:

"command \"line\" arguments"
Run Code Online (Sandbox Code Playgroud)

有小费吗?提前致谢

irk*_*der 6

据我所知,ruby并没有从命令行中删除那些双引号.shell正在使用它们将内容插入为字符串并将它们传递给ruby.

你可以得到ruby收到的所有东西:

cmd_line = "#{$0} #{ARGV.join( ' ' )}"
Run Code Online (Sandbox Code Playgroud)

为什么你需要知道引号中的内容?你可以使用其他分隔符(比如':'或'#')吗?

如果需要,可以通过转义它们将双引号传递给ruby:

$> ruby test.rb command "\"line\"" arguments
Run Code Online (Sandbox Code Playgroud)

cmd_line在这种情况下,上面的变量将收到以下字符串:

test.rb comand "line" arguments
Run Code Online (Sandbox Code Playgroud)