Quiero establecer la variable de entorno programáticamente con Ruby. En Golang tenemos
syscall.Exec(os.Getenv(SHELL), []string{os.Getenv(SHELL)}, updated)Esto abre un nuevo shell predeterminado con las variables actualizadas. Entonces, la terminal donde ejecutamos el programa go tendrá esas variables persistentes para la sesión.
Soy nuevo en Ruby y no puedo encontrar el equivalente allí. Por favor, ayúdame.
Para obtener/establecer variables de entorno, puede usar el hash ENV , luego para hacer llamadas al sistema, donde puede ver la salida estándar (no como ' que le devolverá la salida como una cadena), puede llamar system .
El shell predeterminado debería estar disponible en ENV['SHELL'] , por lo que lo que necesitará debería ser algo como:
ENV['FOO'] = '123' # FOO will last for the entire ruby session system({'BAR' => '456'}, ENV['SHELL']) # BAR will last until system call has finished system(ENV['SHELL']) # Here, only FOO will be available, not BAR