Невозможно изменить гемсет RVM из сценария оболочки с помощью `rvm gemset use`

(См. Обновление внизу)


Мне кажется, что я упускаю что-то ужасно очевидное, но я не могу изменить наборы гемов из внутри сценария оболочки. Этот минимальный сценарий демонстрирует:

#!/usr/bin/env bash

rvm gemset use "testing"

Я даже попробовал инструкции со страницы Сценарии RVM (хотя это и не казалось необходимым):

#!/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"

Все равно нет.

Достаточно интересно, если я попробую чтобы запустить сценарий без предварительного создания гемсета "testing", я получаю ОШИБКА: набор gemset "testing" не существует, rvm gemset сначала создает "testing". Однако, если я создаю гемсет, а затем запускаю скрипт, я не получаю никаких выходных данных из скрипта, и гемсет не изменяется (согласно rvm info ). Я могу выполнять другие действия RVM gemset,

[Обновление]

Конечно, среда изменяется, на что указывает вызов rvm info из сценария. Как мне заставить эти изменения сохраняться / влиять на вызывающую оболочку? Или, если это невозможно (как указано здесь ), есть ли способ установить текущий гемсет RVM на основе ввода в скрипт?

12
задан Community 23 May 2017 в 11:52
поделиться