использование SCL в вызове команды для сценария Ruby - PullRequest
0 голосов
/ 19 февраля 2019


Мой работодатель имеет Ruby 1.8.7 в / usr / bin / ruby ​​и разрешает использовать Ruby 2.4 только через SCL (коллекции sofoware).
Это означает, что когда я запускаю ruby, мне нужно использовать (из оболочки RH6) 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 файле.

1 Ответ

0 голосов
/ 21 февраля 2019

Как насчет этого:

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