我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
(因此它会从参数列表中删除它解析的内容),那么应用程序可以正常工作。
因此,出于某种原因,gets 似乎正在从 ARGV 读取数据。为什么?这是预期的吗?有没有办法让它不这样做(这样gets()
做没有帮助)。