Класс Command
Класс Command используется для настройки
и запуска внешних процессов. Он позволяет
указать программу для запуска, передать ей
аргументы, задать переменные окружения, рабочую
директорию и настроить потоки ввода-вывода.
Экземпляр Command создаётся методом
new, который параметром принимает имя
или путь к исполняемой программе.
Синтаксис
use std::process::Command;
let mut cmd = Command::new(program);
Пример
Давайте создадим команду для запуска программы
"echo" и выведем информацию о ней через
отладочный вывод:
use std::process::Command;
fn main()
{
let cmd = Command::new("echo");
println!("{:?}", cmd);
}
Результат выполнения кода:
"echo"
Пример
Давайте создадим команду, добавим ей аргумент
и выполним её, получив результат через метод
output:
use std::process::Command;
fn main()
{
let output = Command::new("echo")
.arg("abcde")
.output()
.expect("failed to execute process");
let text = String::from_utf8_lossy(&output.stdout);
println!("{}", text.trim());
}
Результат выполнения кода:
"abcde"
Пример
Давайте зададим команде рабочую директорию и переменную окружения, а затем проверим статус её завершения:
use std::process::Command;
fn main()
{
let status = Command::new("ls")
.current_dir("/")
.env("LANG", "C")
.status()
.expect("failed to execute process");
println!("{}", status.success());
}
Результат выполнения кода:
true