当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。