本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。