shell脚本中的cd命令是否加载目标目录中的rvmrc?

发布于 2024-11-17 17:22:20 字数 218 浏览 1 评论 0原文

当你在projectx中给出类似的内容时,

一个.rvmrc文件指定ruby 1.9.2并且我的系统上有两个rubies(ree-1.8.7和ruby1.9.2),

#!/bin/bash

cd applications/projectx
which ruby
ruby -v

最后两行输出ree-1.8.7及其路径这不是我打算使用的。

when you have something like..

given inside projectx an .rvmrc file specifying ruby 1.9.2 and having two rubies on my system (ree-1.8.7 and ruby1.9.2)

#!/bin/bash

cd applications/projectx
which ruby
ruby -v

the last two lines output ree-1.8.7 and its path which was not I intended to use.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无声无音无过去 2024-11-24 17:22:20

是的,


Rvm 确实定义了一个围绕 cd 的包装器,如下所示:

cd () 
{ 
    builtin cd "$@";
    local result=$?;
    __rvm_project_rvmrc;
    __rvm_after_cd;
    return $result
}

很难说出为什么您的 .rvmrc 不起作用。 Rvm 确实支持项目特定的 .rvmrc 文件,但您没有发布您的文件。

Yes


Rvm does define a wrapper around cd that looks like this:

cd () 
{ 
    builtin cd "$@";
    local result=$?;
    __rvm_project_rvmrc;
    __rvm_after_cd;
    return $result
}

It's difficult to tell why your .rvmrc isn't working. Rvm does support project-specific .rvmrc files, but you didn't post yours.

无风消散 2024-11-24 17:22:20

您需要在脚本中获取rvm,当您运行脚本时,它不会加载您的.bashrc。 添加一行即可。

[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm

只需在脚本的开头

You need to source rvm inside your script, when you run a script it doesn't load your .bashrc. Simply add a line like

[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm

to the start of your script.

被翻牌 2024-11-24 17:22:20

如果您使用的是 RVM 1.7.0 或更高版本,则需要通过将此行添加到 ~/.rvmrc(或系统 .rvmrc)来启用项目特定的 .rvmrc 文件:

rvm_project_rvmrc=1

请参阅:https://rvm.io/workflow/rvmrc/

If you are using RVM 1.7.0 or later you need to enable project specific .rvmrc files by adding this line to ~/.rvmrc (or system .rvmrc):

rvm_project_rvmrc=1

See: https://rvm.io/workflow/rvmrc/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文