在 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}"
我的雇主在 /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}"