Метод 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,
который запускает процесс и возвращает его вывод