Ruby:如何将文件加载到交互式ruby控制台(IRB)?
我正在使用IRB(交互式ruby控制台)来学习如何使用Ruby进行编程。 如果我先在文本编辑器中编写程序,如何将文件加载到控制台?
如果只需要将一个文件加载到IRB中,则可以使用irb -r ./your_file.rb
调用它,如果它在同一个目录中的话。
这将自动需要该文件,并允许您立即使用它。
在Ubuntu 14.04上使用ruby 1.9.3,我可以使用以下命令行将文件从当前目录加载到irb
:
irb -I . -r foo.rb
其中foo.rb
是我想从我的当前目录加载的文件。 -I
选项是必要的,以将当前目录( .
)添加到ruby的加载path,如ruby手册页中所述。 这使得可以从当前目录require
文件,这是irb
的-r
选项所完成的。
当我遇到这个问题时,关键的一点是我不明显的是-I
选项。 一旦你这样做了,你可以在irb
调用require 'foo.rb'
来查看当前目录中的任何文件。 当然,你可以指定你想要的任何目录,而不仅仅是.
与-I
选项。 要在加载path中包含多个目录,请用冒号(:)分隔它们,例如:
irb -I foo/:bar/:baz/
这个命令会把目录foo
, bar
和baz
到ruby的加载path中。
最后的select是在使用require
或-r
加载文件时使用文件的相对path或绝对path:
irb -r ./foo.rb
或从irb
内部:
> require './foo.rb'
inputirb
接着
require './ruby_file.rb'
这是假定ruby_file.rb在同一个目录中。 相应地调整。
两种方式:
- 在不运行程序的情况下加载源代码 – 这可以访问所有的variables和函数:
source("filename.rb")
- 运行程序,然后进入交互模式 – 这只能访问函数,而不是variables:
require("filename.rb")
这取决于你的ruby。 Ruby 1.8包括你当前的path,而Ruby 1.9不。 评估$:
确定您的path是否包含在内。 所以在Ruby 1.9中,你必须使用整个path,这是一个安全的select。
然后您可以使用require
或load
来包含文件。
require
不要求您在尝试查找文件时添加该文件的后缀,并且只包含该文件一次。 require
应该使用,而不是大部分时间load
。
如果你打算使用ruby 1.8,请检查将目录添加到$ LOAD_PATH(Ruby)
在文本编辑器中inputruby代码
用扩展名.rb保存(例如: demo.rb )。
在Linux中,打开你的terminal,然后将目录切换到该文件的当前位置(cd命令用于更改目录)。
之后,inputirb和文件名(不要忘记包含你的扩展名(.rb))。
在这个图像中,我加载了一个简单的ruby文件,只打印“ruby”。
将path加载到irb的另一种方法是键入require,然后将文件拖放到terminal中。使用Linux Mint进行testing。