从命令行ruby方法运行并返回值

时间:2016-12-20 15:07:09

标签: ruby bash shell

我有一个像这样的红宝石代码:

module MyClass
    def self.my_method?
        return false
    end
end

从命令行我必须调用该方法并获取返回值。但是如果我做的话

ruby -e "require './PATH/TO/THE/FILE/file.rb'; MyClass.my_method?"

我总是得到$?或退出代码= 0。

如何调用ruby方法获取其返回值?

由于

2 个答案:

答案 0 :(得分:1)

使用Kernel#exit

ruby -e 'require "file.rb"; exit MyClass.my_method?' 

答案 1 :(得分:0)

这是一种非常不寻常的调用Ruby代码的方法,但是如果你确实需要这样做:

ruby -r ./file.rb -e 'exit(MyClass.my_method? ? 0 : -1)'

将布尔响应转换为显式传递给exit的内容,您可以将其作为退出代码收集。如有必要,您可以将结果映射到某种错误代码。我在这里只使用-1作为例子。