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

using SCL in the command call for Ruby script


我的雇主在 /usr/bin/ruby 中有 Ruby 1.8.7,并且只允许通过 SCL(软件集合)使用 Ruby 2.4。
也就是说当我运行ruby时,我需要使用(从RH6shell)scl enablde ruby-24 'ruby foo.rb'foo.rb 是文件名。 我想在第一个执行行启用 ruby 调用,即,而不是像这样的 Ruby 代码文件:

#!/usr/bin/ruby
puts "Hello world"

代码看起来

#!cmd
puts "Hello world"

cmd 是通过 scl 和 运行 调用 Ruby 2.4 的 puts 命令。我知道可以使用包装文件。我想要 1 个文件中的内容。

这个怎么样:

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