我正在使用 gets
命令来暂停脚本的输出,直到用户按下回车键。如果我不向我的脚本传递任何参数,则它可以正常工作。但是,如果我向脚本传递任何参数,则 gets 命令会出现以下错误:
ruby main.rb -i
main.rb:74:in `gets': No such file or directory - -i (Errno::ENOENT)
from main.rb:74:in `gets'
...
错误消息显示了我传递给脚本的参数。为什么 gets 要查看 ARGV?我正在使用 OptionParser 解析命令行参数。如果我使用
parse!
而不是 parse
(这样它会从参数列表中删除解析的内容),那么应用程序就可以正常工作。因此,看起来 gets 以某种原因从 ARGV 中读取。这是预期的吗?是否有办法使其不这样做(使用
gets()
没有帮助)?