You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单个Ruby脚本的Shebang行通过SCL调用Ruby 2.4?

单文件解决SCL Ruby 2.4的Shebang问题

没问题,这事儿完全可以用单文件的shebang方案搞定,不用额外写包装脚本。

直接把你的脚本首行改成下面这个shebang就行:

#!/usr/bin/scl enable ruby-24 -- ruby

举个完整的例子,你的foo.rb可以写成这样:

#!/usr/bin/scl enable ruby-24 -- ruby
puts "Hello world"
puts "当前Ruby版本: #{RUBY_VERSION}"

原理说明:

  • /usr/bin/scl是系统里SCL工具的可执行路径,直接作为shebang的解释器
  • enable ruby-24告诉SCL启用Ruby 2.4的软件集合环境
  • --是关键,用来分隔SCL的命令参数和后续要执行的程序(这里就是ruby),确保SCL启用环境后,会调用Ruby解释器来执行当前脚本的内容

使用步骤:

  1. 把上面的内容保存成脚本文件(比如foo.rb)
  2. 给脚本添加执行权限:
    chmod +x foo.rb
    
  3. 直接运行脚本:
    ./foo.rb
    

这样运行出来的结果就会是Ruby 2.4的版本,而不是系统默认的1.8.7啦。

内容的提问来源于stack exchange,提问作者user1134991

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:44:14