Библиотека std::env в Rust предоставляет функции для работы с окружением процесса, в основном:
Основное назначение:
- Аргументы командной строки - чтение аргументов, переданных программе
- Переменные окружения - получение и установка env-переменных
- Информация о процессе - рабочий каталог, информация о ОС
Основные функции:
#![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