0


我的雇主在 /usr/bin/ruby 中有 Ruby 1.8.7,并且只允许通过 SCL(软件集合)使用 Ruby 2.4。
这意味着当我运行 ruby​​ 时,我需要使用(来自 RH6 shell)scl enablde ruby-24 'ruby foo.rb'whenfoo.rb 是文件名。我想在第一个执行行上启用 ruby​​ 调用,即,而不是 Ruby 代码文件,如下所示:

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

代码看起来

#!cmd
puts "Hello world"

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

4

1 回答 1

1

这个怎么样:

#!/usr/bin/ruby
if RUBY_VERSION != "2.4.1"
  exec "scl enable ruby-24; ruby __FILE__"
end
puts "Ruby Version: #{RUBY_VERSION}"
于 2019-02-21T17:59:49.480 回答