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

问题描述 投票:0回答:9

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

ruby irb
9个回答
110
投票

如果您只需要将一个文件加载到 IRB 中,如果它位于同一目录中,则可以使用

irb -r ./your_file.rb
调用它。

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


59
投票

在 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
bar
baz
添加到 ruby 的加载路径。

最后一种选择是在使用

require
-r
加载文件时使用文件的相对或绝对路径:

irb -r ./foo.rb

或从内部

irb
:

> require './foo.rb'

40
投票

输入

irb

然后

require './ruby_file.rb'

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


35
投票

两种方式:

  1. 加载源代码无需运行程序——这可以访问所有变量和函数:

source("filename.rb")


    运行程序,然后进入交互模式——这仅允许访问函数,而不是变量:

require("filename.rb")


    


4
投票
这取决于你的红宝石。 Ruby 1.8 包含您当前的路径,而 Ruby 1.9 则不包含。 评估

$:

 以确定您的路径是否包含在内。  所以在 ruby 1.9 中你必须使用整个路径,这始终是一个安全的选择。

然后您可以使用

require

load
 包含该文件。

require

 不要求您在尝试查找文件时添加文件后缀,并且只会包含该文件一次。  大多数时候应该使用 
require
 代替 
load

如果您要使用 ruby 1.8,请查看

将目录添加到 $LOAD_PATH (Ruby)


2
投票

使用扩展名

.rb

保存(例如:demo.rb)。 在 Linux 中,打开终端,然后将目录更改为该文件的当前位置(使用 cd 命令更改目录)。

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

click here to see loading a ruby file using irb 在该图像中,我加载了一个简单的 ruby 文件,该文件仅打印“ruby”。


1
投票

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



0
投票


0
投票

A1。 $ gvim xxx.rb A2。 标记您要复制的区域。 A3。 菜单 > 编辑 A4。 复制 A5。 $ IRB A6。 粘贴于 irb(主):001:0> A7。 进入 A8。 您现在已经在 irb 中拥有该程序了。

© www.soinside.com 2019 - 2024. All rights reserved.