我正在创建一个 bash “.command” 文件,以允许同事更轻松地启动我编写的 Ruby 脚本。这是它的样子:
#!/bin/bash
cd "$(dirname "$0")"
ruby my_script.rb
当命令运行时,它会生成以下错误:
my_script.rb:1:in `<main>': uninitialized constant Bundler (NameError)
如果我ruby my_script.rb
直接从终端运行,一切都很好。此外,我已经确认 bash 脚本使用的是正确版本的 Ruby 和 RubyGems。我什至可以bundle install
从脚本中正确运行。鉴于所有依赖项似乎都可用于 bash 脚本,我无法弄清楚问题所在。
有任何想法吗?
编辑:
以下是前几行my_script.rb
:
Bundler.require
require "json"
require "fileutils"
require "open-uri"