我对Ruby比较陌生,今天我编写了一个应用程序,可以通过ARGV将参数传递给它.但在我的应用程序中,我希望能够使用"get".问题是,每次我try 这样做,我都会出错.

下面是一个简单的脚本,它显示了我的问题:

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之旅了.:)

Edit:我知道"get"不会检索传递给文件的参数."Gets"将查询用户输入.我希望能够在我的应用程序中使用这两种方法.

推荐答案

如果有参数,默认的gets方法会try 将第一个作为文件处理并从中读取.在这种情况下,要阅读$stdin,你必须明确使用它:

print "Say something! "
input = $stdin.gets

Ruby相关问答推荐

Ruby类构造函数使用`()`而不是`. new()`

BasicObject 的 singleton_class 的超类如何以及为什么是 Ruby 中的 Class 类?

如何从 DateTime 值中删除区域?

在 Ruby 中为类添加实例变量

Ruby gem 权限被拒绝 /var/lib/gems 使用 Ubuntu

Ruby 中有类似 Python 生成器的东西吗?

如何判断 Capistrano 中是否存在文件(在远程服务器上)?

有效的Electron邮件地址正则表达式?

在文件中搜索字符串的最佳方法是什么?

Ruby 中的排序稳定吗?

有没有办法从该实例内部为 Ruby 类的实例创建方法?

我可以使用 `else if` 而不是 `elsif` 吗?

文字数字中的下划线是什么意思?

当我将参数传递给脚本时,使用 gets() 会出现没有这样的文件或目录错误

将两个数组组合成哈希

Xcode - 配置:错误:在 $PATH 中找不到可接受的 C 编译器

如何在 Ruby 中对数组进行分块

obj.nil?与 obj == nil

`gem install therubyracer` 在 Mac OS X Lion 上失败

Ruby 的 %q / %Q 引用方法的用例是什么?