如何从IRB运行.rb文件?


88

我从Ruby on Rails开始。我目前正在阅读一个教程,其中说我必须从IRB运行.rb文件,这将在当前目录中创建.xml文件。

我的问题是如何在IRB中运行.rb文件?
在IRB中运行该.rb文件时,我是否必须位于该目录中?

我尝试了以下操作:仅irb在文件目录中的命令行上键入。据我了解,这开始了IRB会议。
然后,我键入irb "filename.rb"了经历的内容,但没有在当前目录中创建任何内容,但至少没有出现任何错误。

我还尝试了很多其他东西,这些东西给我带来了错误。因此,我认为我自己无法解决此问题,因此使用Google搜索这个问题根本没有帮助。

我正在运行豹。

Answers:


175

您可以只需要或加载就可以在irb中“运行”文件。

$ irb
>> load './filename.rb'

要在irb中更改当前的工作目录,可以使用FileUtils

>> require 'fileutils'
>> FileUtils.pwd # prints working directory
>> FileUtils.cd '/path/to/somewhere' # changes the directory

3
要从irb要求它,您需要提供完全限定的路径,因此: require '~/myrubystuff/coolstuff.rb' 而不是仅仅 require 'coolstuff'
runlevel0 2015年

我只需要按fileutils名称即可,不需要目录路径。我确定它是环境相关的,并不是每个人都需要使用合格的路径。
volx757 '18年

5

如果您想在irb会话中加载文件,并且正在使用Ruby 2+,则可以在irb中加载文件,如下所示:

irb -r ./the_name_of_your_file.rb

这将打开一个加载给定文件的irb会话。

假设您有一个带有这样的类的文件:

class Example
  def initialize(name)
    @name = name
  end

  def print__example
    p name
  end
end

您将能够在irb会话中使用Example类。


那就是我真正在寻找的东西,非常感谢!
托马斯,

这样只能访问函数,而不能访问文件中定义的变量。
Radon Rosborough

2

我们可以使用任何文本编辑器在您当前正在使用的目录中创建一个.rb文件,并在其中键入所有代码,然后ruby filename.rb在终端而不是irb中使用该命令,然后在irb中显示输出。


4
但是通过加载文件,您可以访问在那里定义的变量。在进行故障排除或播放媒体库时非常方便。
索尼娅·汉密尔顿

@Sreenivas这正是我想要的。谢谢!
Joshua Pinter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.