我正在使用IRB(交互式Ruby控制台)了解如何使用Ruby编程。如果我先在文本编辑器中编写程序,那么我该如何将一个文件加载到控制台中呢?
irb -r ./your_file.rb
命令将其调用,前提是该文件与IRB在同一目录下。irb -r /foo/foo.rb
。 - noobninja我正在Ubuntu 14.04上使用ruby 1.9.3,我可以使用以下命令从当前目录将文件加载到 irb
中:
irb -I . -r foo.rb
这里的foo.rb
是我想要从当前目录加载的文件。在ruby的man页面上解释了,-I
选项是必需的,以将当前目录(.
)添加到ruby的加载路径中。这样可以从当前目录中require
文件,这就是irb
的-r
选项所实现的功能。
当我遇到这个问题时,关键的一点并不明显,那就是-I
选项。一旦你这样做了,你就可以从irb
中调用require 'foo.rb'
来加载当前目录中的任何文件。当然,你可以指定任何目录,而不仅仅是.
,只需使用-I
选项即可。要在加载路径中包含多个目录,请使用冒号(:)分隔它们,例如:
irb -I foo/:bar/:baz/
这个命令将会把目录 foo
、bar
和 baz
添加到 Ruby 的加载路径中。
最后一种选择是,在使用 require
或 -r
加载文件时使用相对或绝对路径到文件:
irb -r ./foo.rb
或从irb
内部:
> require './foo.rb'
在命令行中输入irb
然后
require './ruby_file.rb'
假设 ruby_file.rb 文件与此文件在同一个目录下,请相应进行调整。
require_relative
。例如,require "./lib/foo"
和 require_relative "lib/foo"
是一样的。 - Dennis.rb
is optional, you can write require './ruby_file'. I checked in
ruby 1.9.3p551` - AMIC MING两种方法:
source("filename.rb")
require("filename.rb")
require
,但它似乎不会重新加载脚本(对原始源代码的任何修改都不会反映在您的会话中),而source
似乎可以反映对原始脚本的更改。 - Michael Welch$:
来判断是否包含路径。因此,在Ruby 1.9中,您必须使用完整路径,这总是一个安全的选择。require
或load
来包含文件。
require
不需要添加文件后缀名即可找到它,并且只会包含一次文件。大多数情况下应该使用require
而不是load
。将路径加载到irb的另一种方法是只需输入require,然后将文件拖放到终端中。 - 在Linux Mint上进行过测试。
对于那些想要从不同目录加载 .rb 文件的人,只需将目录的字符串表示添加到 $: 变量中即可。
> $: << "/directory/to/the/required/rb/file"
> require "file"