在Ruby脚本的命令调用中使用SCL

时间:2019-02-19 12:48:09

标签: ruby file software-collections


我的雇主在/ 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的地方。我知道可以使用包装文件。我想要一份文件。

1 个答案:

答案 0 :(得分:1)

如何?

#!/usr/bin/ruby
if RUBY_VERSION != "2.4.1"
  exec "scl enable ruby-24; ruby __FILE__"
end
puts "Ruby Version: #{RUBY_VERSION}"