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

当你有类似的东西..

在projectx中给出一个.rvmrc文件,指定ruby 1.9.2并在我的系统上有两个ruby(ree-1.8.7和ruby1.9.2)

#!/bin/bash cd applications/projectx which ruby ruby -v 

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


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

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

很难说你的.rvmrc无法正常工作。 Rvm 确实支持特定.rvmrc项目的.rvmrc文件,但是你没有发布你的文件。

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

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

到脚本的开头。

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

rvm_project_rvmrc = 1

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

Interesting Posts