加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 不能通过`rvm gemset use`从shell脚本更改RVM gemset

发布时间:2020-12-15 18:42:00 所属栏目:安全 来源:网络整理
导读:(见更新底部) 我觉得我在这里缺少一些非常明显的东西,但是我不能从shell脚本中更改gemsets.这个最小的脚本演示: #!/usr/bin/env bashrvm gemset use "testing" 我甚至尝试了Scripting RVM page的指示(虽然似乎不需要): #!/usr/bin/env bash# Load RVM into
(见更新底部)

我觉得我在这里缺少一些非常明显的东西,但是我不能从shell脚本中更改gemsets.这个最小的脚本演示:

#!/usr/bin/env bash

rvm gemset use "testing"

我甚至尝试了Scripting RVM page的指示(虽然似乎不需要):

#!/usr/bin/env bash

# Load RVM into a shell session *as a function*
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
  # First try to load from a user install
  source "$HOME/.rvm/scripts/rvm"
elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
  # Then try to load from a root install
  source "/usr/local/rvm/scripts/rvm"
else
  printf "ERROR: An RVM installation was not found.n"
fi

rvm gemset use "testing"

还没去

有趣的是,如果我尝试运行脚本而不首先创建“测试”gemset,我得到错误:Gemset’testing’不存在,rvm gemset首先创建’测试’.但是,如果我创建gemset然后运行脚本,我没有从脚本输出,并且gemset没有更改(根据rvm信息).我可以从脚本中执行其他RVM gemset操作,例如创建gemsets和信任的.rvmrc文件.

[更新]

当然,环境正在改变,正如在脚本中调用rvm信息所指出的那样.如何获得这些更改来持久化/影响调用shell?或者,如果不可能(如here所示),是否有任何方法可以根据脚本的输入设置当前的RVM gemset?

有完全相同的问题,这里的解决方案:
#!/bin/bash

# IMPORTANT: Source RVM as a function into local environment.
#            Otherwise switching gemsets won't work.
[ -s "$HOME/.rvm/scripts/rvm" ] && . "$HOME/.rvm/scripts/rvm"

# Enable shell debugging.
set -x

rvm 1.9.2@gemset_a
rvm gemdir
gem env gemdir

rvm 1.9.2@gemset_b
rvm gemdir
gem env gemdir

我发现,你的交互式shell有rvm()及其助手,而脚本的环境却没有得到.执行rvm二进制代替,部分工作,从而导致一些混乱.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读