Le variabili di ambiente sono variabili passate ai programmi dalla riga di comando o dalla shell grafica. Quando si fa riferimento a una variabile di ambiente, viene fatto riferimento al suo valore (qualunque sia la variabile definita).
Sebbene ci siano un certo numero di variabili d'ambiente che influenzano solo la riga di comando o la stessa shell grafica (come PATH o HOME), ce ne sono anche diverse che influenzano direttamente il modo in cui gli script Ruby vengono eseguiti.
Suggerimento: le variabili di ambiente Ruby sono simili a quelle presenti nel sistema operativo Windows. Ad esempio, gli utenti Windows potrebbero avere familiarità con una variabile utente TMP per definire la posizione della cartella temporanea per l'utente attualmente connesso.
Ruby ha accesso diretto alle variabili di ambiente tramite l'hash ENV. Le variabili di ambiente possono essere lette o scritte direttamente utilizzando l'operatore indice con un argomento stringa.
Si noti che la scrittura su variabili di ambiente avrà effetto solo sui processi figlio dello script Ruby. Altre invocazioni dello script non vedranno i cambiamenti nelle variabili di ambiente.
#! / usr / bin / env ruby
# Stampa alcune variabili
mette ENV ['PATH']
mette ENV ['EDITOR']
# Modifica una variabile, quindi avvia un nuovo programma
ENV ['EDITOR'] = 'gedit'
'cheat environment_variables --add'
Per passare le variabili di ambiente a Ruby, è sufficiente impostare quella variabile di ambiente nella shell. Questo varia leggermente tra i sistemi operativi, ma i concetti rimangono gli stessi.
Per impostare una variabile di ambiente sul prompt dei comandi di Windows, utilizzare il comando set.
> imposta TEST = valore
Per impostare una variabile di ambiente su Linux o OS X, utilizzare il comando export. Sebbene le variabili di ambiente siano una parte normale della shell Bash, sono state solo le variabili esportati sarà disponibile nei programmi lanciati dalla shell Bash.
$ export TEST = valore
In alternativa, se la variabile di ambiente verrà utilizzata solo dal programma che sta per essere eseguito, è possibile definire qualsiasi variabile di ambiente prima del nome del comando. La variabile d'ambiente verrà passata al programma durante l'esecuzione, ma non salvata. Eventuali ulteriori invocazioni del programma non avranno questa variabile d'ambiente impostata.
$ EDITOR = gedit cheat environment_variables --add
Esistono diverse variabili d'ambiente che influiscono sul modo in cui agisce l'interprete Ruby.