本文简要介绍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 Command.args用法及代码示例
- Rust Command.env用法及代码示例
- Rust Command.env_remove用法及代码示例
- Rust Command.get_args用法及代码示例
- Rust Command.stdout用法及代码示例
- Rust Command.stdin用法及代码示例
- Rust Command.current_dir用法及代码示例
- Rust Command.output用法及代码示例
- Rust Command.status用法及代码示例
- Rust Command.envs用法及代码示例
- Rust Command.get_program用法及代码示例
- Rust Command.arg用法及代码示例
- Rust Command.stderr用法及代码示例
- Rust Command.env_clear用法及代码示例
- Rust Command.get_envs用法及代码示例
- Rust Command.get_current_dir用法及代码示例
- Rust Command.new用法及代码示例
- Rust Command.spawn用法及代码示例
- Rust Components用法及代码示例
- Rust Component.as_os_str用法及代码示例
- Rust Component用法及代码示例
- Rust Components.as_path用法及代码示例
- Rust Condvar.notify_all用法及代码示例
- Rust Condvar.wait用法及代码示例
- Rust Cow.is_owned用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Struct std::process::Command。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。