Библиотека std::env в Rust предоставляет функции для работы с окружением процесса, в основном:

Основное назначение:

  1. Аргументы командной строки - чтение аргументов, переданных программе
  2. Переменные окружения - получение и установка env-переменных
  3. Информация о процессе - рабочий каталог, информация о ОС

Основные функции:

#![allow(unused)]
fn main() {
use std::env;

// 1. Аргументы командной строки
let args: Vec<String> = env::args().collect(); // ["program_name", "arg1", "arg2"]

// 2. Переменные окружения
let path = env::var("PATH").unwrap(); // Получить переменную
env::set_var("MY_VAR", "value");      // Установить переменную

// 3. Рабочий каталог
let current_dir = env::current_dir().unwrap(); // Текущая директория
env::set_current_dir("/path");                 // Сменить директорию

// 4. Информация о ОС
let os = env::consts::OS; // "linux", "windows", "macos"
}

Типичные use-cases:

  • Конфигурация приложения через env-переменные
  • Парсинг аргументов CLI
  • Определение ОС для условной компиляции
  • Получение метаинформации о среде выполнения

Это одна из самых часто используемых библиотек в Rust для взаимодействия со средой выполнения.

Note

Полезное замечание: если программе в качестве параметров нужно принимать Юникод, то нужно использовать библиотеку std::env::args_os