Ruby 如何使用OptionParse只允许一个标志

Ruby 如何使用OptionParse只允许一个标志,ruby,command-line,Ruby,Command Line,只有三种方法可以调用install.sh ./install.sh ./install.sh --force ./install.sh -f 我写起来很容易。然而,我尝试使用OptionParse。这就是我目前所拥有的 def self.parse option = {} optparse = OptionParser.new do |opts| opts.banner = "Usage: ./install.sh [--force]" opts.on

只有三种方法可以调用install.sh

./install.sh
./install.sh --force
./install.sh -f
我写起来很容易。然而,我尝试使用OptionParse。这就是我目前所拥有的

 def self.parse
    option = {}
    optparse = OptionParser.new do |opts|
      opts.banner = "Usage: ./install.sh [--force]"
      opts.on('-f', '--force', '') do |dir|
        option[:force] = true
      end
    end

    begin
      optparse.parse!
    rescue OptionParser::InvalidOption => e
      puts e
    end
  end
若用户键入./install.sh--foo,那个么程序将失败,用户将看到以下消息

invalid option: --foo
理想情况下,每当出现错误消息时,我都希望显示横幅。我该怎么做

第二个问题:


如果用户像这样调用./install.sh foo(注意foo是作为参数传递的),那么OptionParser不会显示任何错误。如何向用户提供这样一个信息,即此安装只需要一个参数-f或-force,而不需要其他任何参数。

看起来您已经在这样做了。当您解救异常并打印它时,您应该会收到如下错误消息:

无效选项$invalid_选项

您可以使用

puts optparse