Les variables d'environnement sont des variables transmises aux programmes par la ligne de commande ou le shell graphique. Lorsqu'une variable d'environnement est référencée, sa valeur (quelle que soit la variable définie) est alors référencée.
Bien qu'il existe un certain nombre de variables d'environnement qui n'affectent que la ligne de commande ou le shell graphique lui-même (comme PATH ou HOME), il y en a également plusieurs qui affectent directement la façon dont les scripts Ruby s'exécutent.
Conseil: les variables d'environnement Ruby sont similaires à celles trouvées dans le système d'exploitation Windows. Par exemple, les utilisateurs de Windows peuvent être familiarisés avec une variable utilisateur TMP pour définir l'emplacement du dossier temporaire pour l'utilisateur actuellement connecté.
Ruby a un accès direct aux variables d'environnement via le hachage ENV. Les variables d'environnement peuvent être directement lues ou écrites à l'aide de l'opérateur d'index avec un argument de chaîne.
Notez que l'écriture dans des variables d'environnement n'aura d'effet que sur les processus enfants du script Ruby. Les autres invocations du script ne verront pas les changements dans les variables d'environnement.
#! / usr / bin / env rubis
# Imprimer certaines variables
met ENV ['PATH']
met ENV ['EDITEUR']
# Changer une variable puis lancer un nouveau programme
ENV ['EDITOR'] = 'gedit'
'cheat environment_variables --add'
Pour passer des variables d'environnement à Ruby, définissez simplement cette variable d'environnement dans le shell. Cela varie légèrement entre les systèmes d'exploitation, mais les concepts restent les mêmes.
Pour définir une variable d'environnement à l'invite de commandes Windows, utilisez la commande set.
> définir TEST = valeur
Pour définir une variable d'environnement sur Linux ou OS X, utilisez la commande d'exportation. Bien que les variables d'environnement soient une partie normale du shell Bash, seules les variables qui ont été exporté sera disponible dans les programmes lancés par le shell Bash.
$ export TEST = valeur
Alternativement, si la variable d'environnement ne sera utilisée que par le programme sur le point d'être exécuté, vous pouvez définir toutes les variables d'environnement avant le nom de la commande. La variable d'environnement sera transmise au programme lors de son exécution, mais pas enregistrée. Toute nouvelle invocation du programme n'aura pas cette variable d'environnement définie.
$ EDITOR = gedit cheat environment_variables --add
Il existe un certain nombre de variables d'environnement qui affectent le comportement de l'interpréteur Ruby.