Usar variables ambientales de Ruby

Las variables de entorno son variables transmitidas a los programas por la línea de comando o el shell gráfico. Cuando se hace referencia a una variable de entorno, se hace referencia a su valor (cualquiera que sea la variable definida).

Aunque hay una serie de variables de entorno que solo afectan la línea de comando o el shell gráfico en sí (como PATH o HOME), también hay varias que afectan directamente cómo se ejecutan los scripts de Ruby.

Consejo: las variables de entorno Ruby son similares a las que se encuentran en el sistema operativo Windows. Por ejemplo, los usuarios de Windows pueden estar familiarizados con una variable de usuario TMP para definir la ubicación de la carpeta temporal para el usuario actualmente conectado.

Acceso a variables de entorno desde Ruby

Ruby tiene acceso directo a las variables de entorno a través del hash ENV. Las variables de entorno se pueden leer o escribir directamente utilizando el operador de índice con un argumento de cadena.

Tenga en cuenta que escribir en variables de entorno solo tendrá un efecto en los procesos secundarios del script Ruby. Otras invocaciones del script no verán los cambios en las variables de entorno..

#! / usr / bin / env ruby
# Imprimir algunas variables
pone ENV ['RUTA']
pone ENV ['EDITOR']
# Cambiar una variable y luego lanzar un nuevo programa
ENV ['EDITOR'] = 'gedit'
'cheat environment_variables --add'

Pasar variables de entorno a Ruby

Para pasar variables de entorno a Ruby, simplemente configure esa variable de entorno en el shell. Esto varía ligeramente entre los sistemas operativos, pero los conceptos siguen siendo los mismos..

Para establecer una variable de entorno en el símbolo del sistema de Windows, use el comando set.

> establecer TEST = valor

Para establecer una variable de entorno en Linux u OS X, use el comando de exportación. Aunque las variables de entorno son una parte normal del shell Bash, solo las variables que han sido exportado estará disponible en programas lanzados por el shell Bash.

$ export TEST = valor

Alternativamente, si la variable de entorno solo será utilizada por el programa a punto de ejecutarse, puede definir cualquier variable de entorno antes del nombre del comando. La variable de entorno se pasará al programa a medida que se ejecuta, pero no se guardará. Las invocaciones adicionales del programa no tendrán este conjunto de variables de entorno.

$ EDITOR = gedit cheat environment_variables --add

Variables de entorno utilizadas por Ruby

Existen varias variables de entorno que afectan la forma en que actúa el intérprete de Ruby..

  • RUBYOPT: todos los modificadores de la línea de comandos se agregarán a los modificadores especificados en la línea de comandos.
  • RUBYPATH: cuando se usa con el modificador -S en la línea de comando, las rutas enumeradas en RUBYPATH se agregarán a las rutas buscadas al buscar scripts Ruby. Las rutas en RUBYPATH preceden a las rutas enumeradas en PATH.
  • RUBYLIB: la lista de rutas aquí se agregará a la lista de rutas que Ruby usa para buscar bibliotecas incluidas en el programa con el método require. Las rutas en RUBYLIB se buscarán antes que otros directorios..