我是 Ruby 的新手,今天我编写了一个应用程序,您可以通过 ARGV 向其传递参数。但在我的应用程序中,我希望能够使用“gets”。问题是,每次我尝试这样做时,都会出现错误。
这是一个显示我的问题的简单脚本:
print "Say something! "
input = gets
如果我这样调用它:
$ ruby script.rb this is arguments
我收到这个错误:
script.rb:2:in `gets': No such file or directory - this (Errno::ENOENT)
from script.rb:2
希望有人能帮我解决这个问题,这样我就可以继续我的 Ruby 之旅。 :)
编辑:我知道“Gets”不会检索传递给文件的参数。 “获取”将查询用户的输入。我希望能够在我的应用程序中使用这两种方法。
最佳答案
如果有参数,默认的 gets
方法会尝试将第一个参数视为文件并从中读取。要在这种情况下从 $stdin
中读取,您必须显式地使用它:
print "Say something! "
input = $stdin.gets
关于ruby - Kernel#gets 尝试读取文件而不是标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883925/