我使用trollop解析命令行参数,并希望在下面添加一些必要的位置参数,如filename1和filename2:
usage: my_script [--help] [--some-option VALUE] [--some-flag] filename1 filename2我怎么用手推车做这件事?
发布于 2013-12-10 17:16:19
Trollop是关于解析选项--可能存在也可能不存在的东西。
所需的位置参数不是选项。要访问位置参数,只需查看argv。如果您使用多种选项和所需的位置参数,trollop将负责删除可选内容,并使ARGV处于只包含您所关心的内容的状态。
如果运行此示例代码:
#!/usr/bin/env ruby
require 'trollop'
opts = Trollop::options do
opt :monkey, "Use monkey mode" # flag --monkey, default false
opt :name, "Monkey name", :type => :string # string --name <s>, default nil
opt :num_limbs, "Number of limbs", :default => 4 # integer --num-limbs <i>, default to 4
end
puts "opts: #{opts}"
puts "ARGV: #{ARGV}"以下是您将得到的信息:
[~/tbear/bin]$ ./t.rb
opts: {:monkey=>false, :name=>nil, :num_limbs=>4, :help=>false}
ARGV: []
[~/tbear/bin]$ ./t.rb arg1
opts: {:monkey=>false, :name=>nil, :num_limbs=>4, :help=>false}
ARGV: ["arg1"]
[~/tbear/bin]$ ./t.rb -m arg1
opts: {:monkey=>true, :name=>nil, :num_limbs=>4, :help=>false, :monkey_given=>true}
ARGV: ["arg1"]注意,在示例2和示例3中,ARGV是如何相同的。
发布于 2014-11-06 23:03:00
Trollop还提供了leftovers属性,即提供相同的信息。。下面是你如何使用它的方法:
#!/usr/bin/env ruby
require 'trollop'
require 'pp'
p = Trollop::Parser.new do
opt :monkey, 'Use monkey mode' # flag --monkey, default false
opt :name, 'Monkey name', :type => :string # string --name <s>, default nil
opt :num_limbs, 'Number of limbs', :default => 4 # integer --num-limbs <i>, default to 4
end
p.parse
puts 'Leftovers:'
pp p.leftovers
puts 'ARGV:'
pp ARGV结果如下:
> ruby se_01.rb foo blarb -m
Leftovers:
["foo", "blarb"]
ARGV:
["foo", "blarb"]https://stackoverflow.com/questions/18477610
复制相似问题