Windows 7运行ruby.exe与ruby之间的区别

时间:2019-07-31 15:49:54

标签: ruby windows

我在Windows 7笔记本电脑上安装了多个版本的Ruby。我注意到,当我输入ruby hello.rbhello.rb时,会运行不同版本的Ruby。第一个运行红宝石2.3,第二个运行红宝石2.2。我想知道为什么执行ruby的两种不同方式会运行两个不同的版本。我最终想删除ruby 2.2,但担心在不为ruby加上前缀的情况下运行ruby应用程序会失败。

查看代码输出

#!/bin/ruby
require 'tk';

where = `where ruby`;   where = "where ruby:\n" + where;
ver  = `ruby -v`;       ver  = ver[0..9];
path = ENV['PATH'];     path = path[0..52];

msg = 'Hello from Ruby ' + RUBY_VERSION + ' -OR- ' + ver;
print(where + "\n" + "PATH " + path + "\n" + msg + "\n");

root = TkRoot.new {title "Hello, World!"};
TkLabel.new(root) do text msg; pack {padx 15; pady 15; side 'left'}; end
Tk.mainloop;

运行ruby hello.rb可获得预期结果:

where ruby:
C:\Ruby23-x64\bin\ruby.exe
C:\Ruby24-x64\bin\ruby.exe

PATH C:\Ruby23-x64\bin;C:\ActiveTcl\bin;C:\Ruby24-x64\bin;
Hello from Ruby 2.3.3 -OR- ruby 2.3.3

从提示符处运行hello.rb会产生意外的结果。请注意,ruby2.2.6中甚至没有PATH

where ruby:
C:\Ruby23-x64\bin\ruby.exe
C:\Ruby24-x64\bin\ruby.exe

PATH C:\Ruby23-x64\bin;C:\ActiveTcl\bin;C:\Ruby24-x64\bin;
Hello from Ruby 2.2.6 -OR- ruby 2.3.3

0 个答案:

没有答案