РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
992 of 1245 menu

Метод env_clear

Метод env_clear очищает все переменные окружения, которые дочерний процесс унаследовал бы от текущего процесса. Он не принимает параметров и возвращает изменяемую ссылку на объект Command, что позволяет использовать его в цепочке вызовов.

По умолчанию при запуске команды через Command дочерний процесс наследует окружение родителя. Метод env_clear полностью удаляет это окружение, после чего можно добавить только нужные переменные с помощью методов env или envs.

Синтаксис

command.env_clear()

Пример

Давайте запустим команду env с очищенным окружением. Вывод покажет, что переменных окружения нет:

use std::process::Command; fn main() { let res = Command::new("env") .env_clear() .output() .expect("failed to execute command"); let out = String::from_utf8_lossy(&res.stdout); println!("{}", out); }

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

""

Пример

Давайте очистим окружение и добавим одну переменную MY_VAR со значением "12345":

use std::process::Command; fn main() { let res = Command::new("env") .env_clear() .env("MY_VAR", "12345") .output() .expect("failed to execute command"); let out = String::from_utf8_lossy(&res.stdout); println!("{}", out); }

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

"MY_VAR=12345"

Пример

Давайте убедимся, что после env_clear унаследованные переменные недоступны. Проверим наличие переменной PATH в дочернем процессе:

use std::process::Command; fn main() { let res = Command::new("printenv") .arg("PATH") .env_clear() .status() .expect("failed to execute command"); println!("{:?}", res.success()); }

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

false

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

  • метод env,
    который добавляет одну переменную окружения
  • метод envs,
    который добавляет несколько переменных окружения
  • метод env_remove,
    который удаляет одну переменную окружения
  • метод new,
    который создаёт новую команду для запуска
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить