當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust Command用法及代碼示例


本文簡要介紹rust語言中 Struct std::process::Command 的用法。

用法

pub struct Command { /* fields omitted */ }

流程構建器,提供對如何生成新流程的細粒度控製。

可以使用 Command::new(program) 生成默認配置,其中 program 給出了要執行的程序的路徑。其他構建器方法允許在生成之前更改配置(例如,通過添加參數):

use std::process::Command;

let output = if cfg!(target_os = "windows") {
    Command::new("cmd")
            .args(["/C", "echo hello"])
            .output()
            .expect("failed to execute process")
} else {
    Command::new("sh")
            .arg("-c")
            .arg("echo hello")
            .output()
            .expect("failed to execute process")
};

let hello = output.stdout;

Command 可以重複使用以產生多個進程。構建器方法無需立即生成進程即可更改命令。

use std::process::Command;

let mut echo_hello = Command::new("sh");
echo_hello.arg("-c")
          .arg("echo hello");
let hello_1 = echo_hello.output().expect("failed to execute process");
let hello_2 = echo_hello.output().expect("failed to execute process");

同樣,您可以在生成進程後調用構建器方法,然後使用修改後的設置生成新進程。

use std::process::Command;

let mut list_dir = Command::new("ls");

// Execute `ls` in the current directory of the program.
list_dir.status().expect("process failed to execute");

println!();

// Change `ls` to execute in the root directory.
list_dir.current_dir("/");

// And then execute `ls` again but in the root directory.
list_dir.status().expect("process failed to execute");

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Struct std::process::Command。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。