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/