Ruby:如何将文件加载到交互式ruby控制台(IRB)?

时间:2012-10-28 19:30:38

标签: ruby irb

我正在使用IRB(交互式ruby控制台)来学习如何使用Ruby编程。如果我先在文本编辑器中编写程序,如何将文件加载到控制台中?

8 个答案:

答案 0 :(得分:74)

如果您只需要将一个文件加载到IRB中,则可以使用irb -r ./your_file.rb调用它,如果它位于同一目录中。

这会自动要求文件,并允许您立即使用它。

答案 1 :(得分:38)

在Ubuntu 14.04上使用ruby 1.9.3,我可以使用以下命令行将当前目录中的文件加载到irb

irb -I . -r foo.rb

其中foo.rb是我要从当前目录加载的文件。将当前目录(-I)添加到ruby的加载路径中需要.选项,如ruby手册页中所述。这样就可以从当前目录中获取require个文件,这是-r irb -I选项的完成。

当我遇到此问题时,对我来说不明显的关键是require 'foo.rb'选项。完成后,您可以在irb内为当前目录中的任何文件调用.。当然,您可以指定所需的任何目录,而不只是-I选项irb -I foo/:bar/:baz/ 。要在加载路径中包含多个目录,请使用冒号(:)分隔它们,例如:

foo

此命令会将目录barbazrequire添加到ruby的加载路径。

最后一种方法是在使用-rirb -r ./foo.rb 加载文件时使用文件的相对路径或绝对路径:

irb

或来自> require './foo.rb'

{{1}}

答案 2 :(得分:28)

输入irb

然后

require './ruby_file.rb'

这是假设ruby_file.rb在同一目录中。相应调整。

答案 3 :(得分:16)

两种方式:

  1. 在没有运行程序的情况下加载源 - 这可以访问所有变量和函数:
  2. source("filename.rb")

    1. 运行程序然后进入交互模式 - 这只能访问函数,而不是变量:
    2. require("filename.rb")

答案 4 :(得分:3)

这取决于你的红宝石。 Ruby 1.8包含您当前的路径,而ruby 1.9则没有。评估$:以确定您的路径是否包含在内。所以在ruby 1.9中你必须使用整个路径,这总是一个安全的赌注。

然后,您可以使用requireload来包含该文件。

require在尝试查找文件时不要求您添加文件的后缀,并且只包含文件一次。 require而不是load

如果您打算使用ruby 1.8

,请查看Adding a directory to $LOAD_PATH (Ruby)

答案 5 :(得分:2)

在文本编辑器中输入ruby代码

使用扩展名 .rb 保存(例如: demo.rb )。

在linux中,打开终端然后将目录更改为该文件的当前位置(cd命令用于更改目录)。

之后,输入irb和您的文件名(不要忘记包含您的扩展名(.rb))。

click here to see loading a ruby file using irb

在那张图片中,我加载了一个简单的ruby文件,只打印" ruby​​"。

答案 6 :(得分:0)

将路径加载到irb的另一种方法是输入require然后将文件拖放到终端中。 使用Linux Mint测试。

答案 7 :(得分:0)

对于那些想要从其他目录加载.rb文件的用户。只需在$:变量中添加目录的字符串表示符即可。

> $: << "/directory/to/the/required/rb/file"
> require "some_file"