为什么我无法确定我的ruby安装版本?

时间:2013-08-09 19:43:47

标签: ruby nameerror

当我运行ruby -version时,我得到:

ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin11.0]
-e:1: undefined local variable or method `rsion' for main:Object (NameError)

可能出现什么问题?

3 个答案:

答案 0 :(得分:36)

使用ruby -v或ruby --version。它将-version解析为rsion。

这两项工作中的任何一项都有效。计算短划线的数量:

ruby -v
ruby --version

当您使用"版本"提供单个短划线时,Ruby会看到:

ruby -v -e rsion

答案 1 :(得分:8)

  

-v 选项和 - 版本选项,但没有-version选项。   (计算破折号。)看undefined local variable or method 'rsion' for main:Object

thread开始,实际原因非常清楚:

  

如果您运行ruby -version,因为您只使用一个短划线,即单词   'version'不被视为单个标志,而是作为标志列表。在   在这种情况下,它会获取-v标志,该标志会打印版本信息。   然后它试图处理e标志,基本上说“其余部分   line是一个执行的ruby脚本。“所以ruby忠实地尝试解析   “rsion”,这是你得到NameError的地方。

     

要获取版本信息,您可以执行ruby -vruby --version

答案 2 :(得分:0)

这就是解释器的方式,但你也在Ruby中定义了常量。

尝试

$> ruby -e " p RUBY_VERSION"

然后您可以在Module.constants

下找到

这里

>> Module.constants.sort.each do |constant| 
?>   puts constant
>> end