Метод status
Метод status запускает внешнюю команду,
ожидает её завершения и возвращает результат
в виде Result с типом ExitStatus.
Этот метод удобен, когда нужно выполнить
команду и узнать, успешно ли она завершилась,
без получения её вывода. Параметров метод
не принимает. Если команда не найдена или
запуск невозможен, возвращается ошибка.
Синтаксис
command.status()
Пример
Давайте запустим команду echo и проверим,
успешно ли она завершилась:
use std::process::Command;
fn main()
{
let res = Command::new("echo")
.arg("hello")
.status();
match res
{
Ok(status) =>
{
println!("Success: {}", status.success());
}
Err(e) =>
{
println!("Error: {}", e);
}
}
}
Результат выполнения кода:
Success: true
Пример
Давайте запустим команду, которой не существует, и обработаем ошибку:
use std::process::Command;
fn main()
{
let res = Command::new("nonexistent_command_xyz")
.status();
match res
{
Ok(status) =>
{
println!("Success: {}", status.success());
}
Err(e) =>
{
println!("Error: {}", e);
}
}
}
Результат выполнения кода:
Error: No such file or directory (os error 2)
Пример
Давайте запустим команду false, которая
всегда завершается с ненулевым кодом, и
посмотрим на результат:
use std::process::Command;
fn main()
{
let res = Command::new("false")
.status();
match res
{
Ok(status) =>
{
println!("Success: {}", status.success());
println!("Code: {:?}", status.code());
}
Err(e) =>
{
println!("Error: {}", e);
}
}
}
Результат выполнения кода:
Success: false
Code: Some(1)
Смотрите также
-
метод
output,
который запускает команду и возвращает её вывод -
метод
spawn,
который запускает команду без ожидания завершения -
метод
arg,
который добавляет аргумент к команде -
структура
ExitStatus,
которая представляет статус завершения процесса