我的雇主在/ usr / bin / ruby中拥有Ruby 1.8.7,并且仅允许通过SCL(sofoware集合)使用Ruby 2.4。
这意味着当我运行ruby时,需要在scl enablde ruby-24 'ruby foo.rb'
时使用(从RH6 shell中)foo.rb
是文件名。
我想在第一个执行行上启用ruby调用,而不是如下所示的Ruby代码文件:
#!/usr/bin/ruby
puts "Hello world"
代码看起来像
#!cmd
puts "Hello world"
其中的cmd是通过scl
调用并为puts
命令运行Ruby 2.4的地方。我知道可以使用包装文件。我想要一份文件。
答案 0 :(得分:1)
如何?
#!/usr/bin/ruby
if RUBY_VERSION != "2.4.1"
exec "scl enable ruby-24; ruby __FILE__"
end
puts "Ruby Version: #{RUBY_VERSION}"