Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
992 of 1246 menu
◀ ▶

Метод envs

Метод envs класса Command добавляет или переопределяет сразу несколько переменных окружения, которые будут переданы запускаемому процессу. Параметром метод принимает итератор, элементы которого представляют собой пары ключ-значение. Ключи и значения могут быть любого типа, реализующего трейты AsRef<OsStr>.

Синтаксис

command.envs(iter)

Пример

Давайте зададим две переменные окружения для команды printenv и выведем их значения:

use std::process::Command; fn main() { let output = Command::new("printenv") .envs([("MY_VAR", "abcde"), ("MY_NUM", "12345")]) .output() .expect("failed to execute process"); let res = String::from_utf8_lossy(&output.stdout); println!("{}", res); }

Результат выполнения кода:

MY_VAR=abcde MY_NUM=12345

Пример

Давайте передадим переменные окружения в виде вектора строковых пар и проверим их наличие через команду sh:

use std::process::Command; fn main() { let vars = vec![ ("KEY1", "abcde"), ("KEY2", "12345"), ]; let output = Command::new("sh") .arg("-c") .arg("echo $KEY1 $KEY2") .envs(vars) .output() .expect("failed to execute process"); let res = String::from_utf8_lossy(&output.stdout); println!("{}", res); }

Результат выполнения кода:

abcde 12345

Смотрите также

  • метод env,
    который задает одну переменную окружения
  • метод env_clear,
    который очищает все переменные окружения
  • метод env_remove,
    который удаляет переменную окружения
  • метод output,
    который запускает процесс и возвращает его вывод
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить