Переменные среды - это переменные, передаваемые в программы командная строка или графическая оболочка. Когда упоминается переменная окружения, то на ее значение (независимо от того, как определяется переменная) затем делается ссылка.
Хотя существует ряд переменных среды, которые влияют только на командную строку или графическую оболочку (например, PATH или HOME), есть также несколько, которые напрямую влияют на то, как Ruby скрипты выполнить.
Совет: переменные среды Ruby аналогичны переменным в ОС Windows. Например, пользователи Windows могут быть знакомы с пользовательской переменной TMP, чтобы определить местоположение временной папки для текущего пользователя, вошедшего в систему.
Доступ к переменным среды из Ruby
Ruby имеет прямой доступ к переменным среды через ENV гашиш. Переменные среды могут быть непосредственно прочитаны или записаны с помощью оператор индекса со строковым аргументом.
Обратите внимание, что запись в переменные среды будет влиять только на дочерние процессы сценария Ruby. Другие вызовы скрипта не увидят изменений в переменных среды.
#! / usr / bin / env ruby
# Распечатать некоторые переменные
ставит ENV ['PATH']
ставит ENV ['РЕДАКТОР']
# Измени переменную и запусти новую программу
ENV ['EDITOR'] = 'gedit'
`cheat environment_variables --add`
Передача переменных среды в Ruby
Чтобы передать переменные среды в Ruby, просто установите эту переменную среды в оболочке. Это немного различается в разных операционных системах, но концепции остаются неизменными.
Чтобы установить переменную среды в командной строке Windows, используйте команду set.
> установить TEST = значение
Чтобы установить переменную среды на Linux или OS X, используйте команду экспорта. Хотя переменные окружения являются нормальной частью оболочки Bash, только переменные, которые были экспортируемый будет доступно в программах, запускаемых оболочкой Bash.
$ export TEST = значение
В качестве альтернативы, если переменная среды будет использоваться только программой, которая должна быть запущена, вы можете определить любые переменные среды перед именем команды. Переменная окружения будет передана в программу при запуске, но не сохранена. При любых последующих вызовах программы эта переменная среды не будет установлена.
$ EDITOR = gedit cheat environment_variables --add
Переменные среды, используемые Ruby
Существует ряд переменных среды, которые влияют на работу интерпретатора Ruby.
- RUBYOPT - любые переключатели командной строки здесь будут добавлены к любым переключателям, указанным в командной строке.
- RUBYPATH - При использовании с ключом -S в командной строке пути, перечисленные в RUBYPATH, будут добавлены к путям, которые ищутся при поиске сценариев Ruby. Пути в RUBYPATH предшествуют путям, перечисленным в PATH.
- RUBYLIB - список путей будет добавлен в список путей, которые Ruby использует для поиска библиотек, включенных в программу с требовать метод. Пути в RUBYLIB будут искать перед другими каталогами.