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

ehs*_*ngh 12 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)
Run Code Online (Sandbox Code Playgroud)

可能有什么不对?

Ric*_*d_G 37

使用ruby -v或ruby --version.它正在将-version解析为rsion.

这两个中的任何一个都有效.计算短划线的数量:

ruby -v
ruby --version
Run Code Online (Sandbox Code Playgroud)

当您使用"version"提供单个破折号时,Ruby会看到:

ruby -v -e rsion
Run Code Online (Sandbox Code Playgroud)


Aru*_*hit 8

有一个-v选项和--version选项,但没有-version选项.(计算破折号.)为main:Object查看未定义的局部变量或方法'rsion'.

从这个线程,实际的原因很清楚:

如果你运行ruby -version,因为你只使用一个破折号,"版本"这个词不会被视为一个标志,而是一个标志列表.在这种情况下,它会获取-v标志,该标志会打印版本信息.然后它尝试处理e标志,它基本上说"这行的其余部分是一个要执行的ruby脚本".所以ruby忠实地试图解析"rsion",这就是你得到NameError的地方.

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