当参数传递给我的ruby脚本时,为什么会发生错误?
发布时间:2020-12-16 20:05:47 所属栏目:百科 来源:网络整理
导读:我正在使用来暂停我的脚本的输出,直到用户点击Enter键.如果我没有传递任何参数到我的脚本,那么它的工作正常.但是,如果我传递任何参数到我的脚本,然后死亡与以下错误: ruby main.rb -imain.rb:74:in `gets': No such file or directory - -i (Errno::ENOENT)
我正在使用来暂停我的脚本的输出,直到用户点击Enter键.如果我没有传递任何参数到我的脚本,那么它的工作正常.但是,如果我传递任何参数到我的脚本,然后死亡与以下错误:
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解析我的命令行参数.如果我使用解析!而不是解析(所以它从参数列表中删除它解析的东西),那么应用程序工作正常. 所以看起来像是因为某些原因从ARGV读书.为什么?这是预期的吗有没有办法让它不这样做(gets()没有帮助). 解决方法
Ruby将自动将解析的参数视为文件名,然后打开并读取使输入可用于ARGF($<)的文件.默认情况下,从ARGF读取.绕过那个:
$stdin.gets 有人建议您可以使用STDIN而不是$stdin,但通常为better to use 另外,从ARGV捕获您想要的输入后,可以使用: ARGV.clear 然后,如果没有阅读可能无法阅读的文件,您将可以自由获取. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |