does cd command in a shell script load the rvmrc inside the destination directory?
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 no开发者_StackOverflow中文版t I intended to use.
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.
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.
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/
精彩评论