在ruby脚本中,我如何获得ruby解释器的路径?
示例脚本:
#!/path/to/ruby
puts `#{RUBY_INTERPRETER_PATH} -e "puts 'hi'"`
#EOF
其中RUBY_INTERPRETER_PATH
是查找/path/to/ruby
的神话方式。
但这只是一个例子。在这种情况下,我意识到我可以将/path/to/ruby
复制到脚本中,但我不想这样做。无论#!
行说什么,我希望“正确”工作。即使在Windows下运行。
侨!
答案 0 :(得分:15)
获取当前运行的ruby解释器的路径:
require 'rbconfig'
RUBY_INTERPRETER_PATH = File.join(RbConfig::CONFIG["bindir"],
RbConfig::CONFIG["RUBY_INSTALL_NAME"] +
RbConfig::CONFIG["EXEEXT"])
答案 1 :(得分:15)
这些天(1.9+)您可以使用内置方法(应该与Jruby等一起使用),如下所示:
RbConfig.ruby 要么 Gem.ruby
$ irb --simple-prompt
>> RbConfig.ruby
=> "C:/installs/Ruby193/bin/ruby.exe"
>> Gem.ruby
=> "C:/installs/Ruby193/bin/ruby.exe"