Почему выдает ошибку, когда аргументы передаются в мой скрипт 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()
не помогло).