刚刚安装并计划今天启动Ruby,并且正在运行一些代码测试行以确保所有内容都已正确安装。简单的数学和放置命令工作正常,但当我试图打印我正在使用的版本时,我收到了这个错误。
我输入的代码,以及随后的代码和错误信息是:
PS C:\Users\Luke> irb
irb(main):001:0> ruby -v
NameError: undefined local variable or method 'v' for main:Object
from (irb):1
from C:/Ruby200/bin/irb:12:in '<main>'
irb(main):002:0>
在我在stackoverflow上发现的四个类似问题中,以及谷歌的少数几个问题,有很多NameErrors但没有使用过&#34; ruby -v&#34;作为输入,我还没有足够的技巧从我找到的答案中收集任何有用的东西。
我使用的是Windows 10和Ruby版本2.0.0-p647。
我在这里很难过。我应该用路径变量做些什么吗?这通常是我检查的第一件事,但是安装程序有一个复选框,以便向您的PATH添加Ruby可执行文件,&#34;所以我假设这照顾它。当我检查环境变量时,它没有改变,仍然是Windows的默认值,但如果PATH没有正确设置,那么最基本的Ruby命令是否不能在终端中工作?
非常感谢任何帮助!
答案 0 :(得分:2)
ruby -v
无法在irb
您需要输入RUBY_VERSION
答案 1 :(得分:0)
使用反引号捕获REPL中的shell命令的输出,如irb或pry。例如:
`ruby -v`
#=> "ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]\n"
您想要的数据也存储在各种Ruby常量中。例如:
[RUBY_VERSION, RUBY_PATCHLEVEL, RUBY_RELEASE_DATE, RUBY_REVISION, RUBY_PLATFORM]
#=> ["2.2.3", 173, "2015-08-18", 51636, "x86_64-darwin14"]
您可以将常量的值放入与解释器的-v
标志的输出匹配的字符串中,但您必须自己构造字符串。例如:
sprintf "ruby %sp%s (%s revision %s) [%s]\n",
RUBY_VERSION, RUBY_PATCHLEVEL, RUBY_RELEASE_DATE, RUBY_REVISION, RUBY_PLATFORM
#=> "ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]\n"