为什么我的 rails 命令在 system() 中的工作方式与在终端中的工作方式不同?



我尝试运行的命令是rails _3.2.13_ new App

当我在命令行中运行它时,它会创建一个版本为 3.2.13 的 Rails 应用程序,但是当我使用system "rails _3.2.13_ new #{self.name} -T -B"运行它时,它会创建一个具有最新版本 Rails 而不是 3.2.13 版本的 Rails 应用程序。

这是Ruby使用/bin/sh来执行shell命令的结果,而你可能每天都在终端中使用/bin/bash。每个加载方式以及每个配置中存在的特定配置将更改配置。

如果您从两个呼叫到system和终端运行which rails,您可能会看到不同的路径。检查echo $PATH,您可能也会看到不同的结果。

要解决此问题,您可以查看 .bashrc、.bash_profile 和 .environment 之间有什么区别?这将让您更好地了解正在发生的事情,然后调整您的 shell 配置以适应。

相关内容

最新更新