(véase la actualización en la parte inferior)No se puede cambiar RVM gemset de script de shell a través de `RVM gemset use`
siento que me falta algo terriblemente obvia aquí, pero no puedo cambiar desde dentro gemsets un guion de shell Este script mínima demuestra:
#!/usr/bin/env bash
rvm gemset use "testing"
Incluso probé las instrucciones del Scripting RVM page (aunque no parecía necesario):
#!/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"
sigue sin ir.
Curiosamente, si intento ejecutar el script sin crear primero el gemset "testing", obtengo ERROR: Gemset 'testing' does not exist, rvm gemset create 'testing' first.
Sin embargo, si creo el gemset y luego ejecuto el script, no obtengo ningún resultado del script y el gemset es no cambiado (de acuerdo con rvm info
). Puedo realizar otras acciones de gemset RVM, como crear conjuntos de valores y confiar en los archivos .rvmrc
, desde el script.
[Actualización]
Por supuesto, el medio ambiente es cambiante, como se indica por una llamada a rvm info
desde el script. ¿Cómo consigo que estos cambios persistan/afecten al intérprete de comandos de llamada? O, si eso no es posible (como se indica en here), ¿hay alguna forma de establecer el gemset RVM actual en función de la entrada de un script?
Su título muestra que usa las comillas inversas. ¿Realmente los estás usando? ¿Sabes que eso significa sustitución de comando? cualquier salida de ese comando debería tener la forma de varName = valor para ser útil (más lo más probable, una evaluación anterior). ¡Buena suerte! – shellter
No, no lo estoy, solo los usé en el título para indicar un comando. –