我正在使用IRB(交互式红宝石控制台)来学习如何使用Ruby进行编程。如果先在文本编辑器中编写程序,如何将文件加载到控制台中?
Answers:
如果只需要将一个文件加载到IRB中,irb -r ./your_file.rb
则可以在同一目录中调用该文件。
这将自动需要该文件,并允许您立即使用它。
rake irb
以为我完成所有工作。
irb -r /foo/foo.rb
在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'
两种方式:
source("filename.rb")
require("filename.rb")
require
它似乎没有重新加载脚本(对原始源的任何修改都不会反映在您的会话中),而source
似乎反映了对原始脚本的更改。
这取决于您的红宝石。Ruby 1.8包含当前路径,而ruby 1.9不包含。评估$:
以确定是否包含您的路径。因此,在ruby 1.9中,您必须使用整个路径,这始终是一个安全的选择。
然后,您可以使用require
或load
包含文件。
require
尝试查找文件时不需要您添加文件的后缀,并且仅将文件包含一次。 require
应该代替load
大部分时间使用。
如果您要使用ruby 1.8,请查看将目录添加到$ LOAD_PATH(Ruby)中