0

我正在编写一个 ruby​​ 脚本来引导一台新的 macbook 计算机。我安装chrubyruby-install通过自制软件。如果我chruby从命令行调用它可以工作。

$ chruby
* ruby-2.4.1

但是,如果我从这样的红宝石脚本中调用它。

def failing_function
  `chruby`
end

failing_function

我收到这个错误

 No such file or directory - chruby (Errno::ENOENT)

作为测试,我尝试了这个

def successful_function
    `ruby-install`
end

successful_function

ruby-install在脚本中得到与命令行相同的输出。

有人对我做错了什么有任何想法吗?

4

1 回答 1

0

在深入研究之后,事实证明这chruby不是一个正确的二进制文件,而是一个通过调用添加到环境中的 bash 函数source /usr/local/share/chruby/chruby.sh。我通过在 ruby​​ 控制台中运行进行了快速测试echo $SHELL,它确实表明它正在使用我的 zsh shell,所以不确定为什么没有加载完整的配置。无论如何,我通过这样做让它工作

def successful_function
  `source /usr/local/share/chruby/chruby.sh && chruby`
end

successful_function
于 2018-10-04T21:24:49.520 回答