Utilisation des variables d'environnement Ruby

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é.

Accès aux variables d'environnement à partir de Ruby

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'

Passer des variables d'environnement à Ruby

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

Variables d'environnement utilisées par Ruby

Il existe un certain nombre de variables d'environnement qui affectent le comportement de l'interpréteur Ruby.

  • RUBYOPT - Tous les commutateurs de ligne de commande ici seront ajoutés à tous les commutateurs spécifiés sur la ligne de commande.
  • RUBYPATH - Lorsqu'il est utilisé avec le commutateur -S sur la ligne de commande, les chemins répertoriés dans RUBYPATH seront ajoutés aux chemins recherchés lors de la recherche de scripts Ruby. Les chemins d'accès dans RUBYPATH précèdent les chemins d'accès répertoriés dans PATH.
  • RUBYLIB - La liste des chemins ici sera ajoutée à la liste des chemins que Ruby utilise pour rechercher les bibliothèques incluses dans le programme avec la méthode require. Les chemins dans RUBYLIB seront recherchés avant les autres répertoires.