读取传递给ruby脚本的原始参数

时间:2014-10-29 15:54:22

标签: ruby scripting console arguments parameter-passing

我想阅读ruby脚本的原始输入并进一步传递。

例如:

script.rb -t test -a argument three -b test

在这个脚本中,我需要一个带有字符串-t test -a argument three -b test的变量,稍后将通过其他函数对其进行解析。

标准OptPartserARGV功能会从流中删除-flags,或者需要大量的硬编码...

之前未定义标志,应将其视为一个。

1 个答案:

答案 0 :(得分:0)

查看Ruby的酷酷OptionParser库。

它提供了标记/开关的解析,带有可选或必需值的参数,可以将参数列表解析为单个选项,并可以为您生成帮助。

以下是一些可以使用的示例:

require 'optparse'
require 'yaml'

options = {}
OptionParser.new do |opts|
  opts.banner = "Usage: example.rb [options]"

  opts.on('-t', '--sourcename test', 'test') { |v| options[:test] = v }
  opts.on('-a', '--sourcehost argument', 'args') { |v| options[:args] = v }
  opts.on('-b', '--sourceport something', 'Something') { |v| options[:something] = v }

end.parse!