4 个版本 (2 个重大更新)

0.3.1 2022年6月7日
0.3.0 2022年6月7日
0.2.0 2022年5月31日
0.1.0 2022年5月30日

#803命令行界面

MIT 许可证

19KB
306

Crates.io Docs.rs

Cmd Utils

安全的 Rust Command 工具特性

  • 运行命令(spawn & wait 包装器)
  • 管道命令
  • 输出到文件(spawn & wait & output to file 包装器)

CmdRun 特性

use std::process::Command;
use cmd_utils::CmdRun;

// `spawn` the command and `wait` for child process to end
// note that `run` does not return the command output, just Ok(())
// but you can redirect stdout & stderr where you want
Command::new("test")
    // .stdout(cfg)
    // .stderr(cfg)
    .args(["-n", "a"])
    .run()
    .unwrap();

示例可用

cargo run --example cmd_run

CmdPipe 特性

use std::process::Command;
use std::str;
use cmd_utils::CmdPipe;

// pipe echo & wc commands
// equivalent to bash: echo test | wc -c
let mut echo = Command::new("echo");
let mut wc = Command::new("wc");
let output = echo.arg("test")
    .pipe(&mut wc.arg("-c"))
    .unwrap();
let res = str::from_utf8(&output.stdout).unwrap();
println!("pipe result: {}", &res);

示例可用

cargo run --example cmd_pipe

CmdToFile 特性

use std::fs::File;
use std::process::Command;
use cmd_utils::CmdToFile;

let stdout = File::create("my_file.stdout").unwrap();
let stderr = File::create("my_file.stderr").unwrap();
let mut cmd = Command::new("echo");
// writes stdout to file
cmd.arg("test").to_file(stdout, Some(stderr));

示例可用

cargo run --example cmd_to_file

无运行时依赖