Почему выдает ошибку, когда аргументы передаются в мой скрипт ruby?

я используюgets приостановить вывод моего скрипта, пока пользователь не нажмет клавишу ввода. Если я не передаю аргументы моему сценарию, он работает нормально. Однако, если я передам какие-либо аргументы в мой скрипт, то получится умирает со следующей ошибкой:

ruby main.rb -i
main.rb:74:in `gets': No such file or directory - -i (Errno::ENOENT)
    from main.rb:74:in `gets'
    ...

Сообщение об ошибке показывает аргумент, который я передал сценарию. Почему бы смотреть на ARGV?

Я использую OptionParser для анализа аргументов командной строки. Если я используюparse! вместоparse (поэтому он удаляет вещи, которые он анализирует из списка аргументов), затем приложение работает нормально.

Похоже, что по какой-то причине get читает из ARGV. Зачем? Это ожидается? Есть ли способ заставить его этого не делать (делатьgets() не помогло).

Ответы на вопрос(2)

Ваш ответ на вопрос