0
require 'optparse'
params = ARGV.getopts("a:", "AA")  

ruby a.rb -aショー:

a.rb:3:in `<main>': missing argument: -a (OptionParser::MissingArgument)

ruby a.rb -bショー:

a.rb:3:in `<main>': invalid option: -b (OptionParser::InvalidOption)

ヘルプ メッセージを表示したいのですが、どうすればよいですか?

4

1 に答える 1

0

実際、OptionParser.new のブロック内でon_tailを使用できます。

しかし、単に ARGV.getopts を試しているだけなので、独自のヘルプ メッセージを表示するためのハックは、例外を救うことになります。

require 'optparse'

help_msg = <<EOM
This is help message:
Hello buddy, you may do something wrong
...
EOM

begin
  params = ARGV.getopts("a:", "AA")
rescue => e
  puts e.message
  puts '=' * 80
  puts help_msg
end

出力:

ruby a.rb -a
#=>
missing argument: -a
================================================================================
This is help message:
Hello buddy, you may do something wrong
...

ruby a.rb -b
#=>
invalid option: -b
================================================================================
This is help message:
Hello buddy, you may do something wrong
...
于 2012-10-15T08:19:12.487 に答える