我正在尝试使用 Command::process 来生成一些进程,并开始使用,我想检查是否可以使用像
echo
这样的简单命令来正常工作。我想获取一些用户输入,然后生成一个进程将其回显到标准输出,以便我可以验证是否得到如下响应:
> echo this!
echo this! <-- my echoed text
目前,我正在尝试这样做:
use std::io;
use std::process::Command;
fn main() {
let mut some_input = String::new();
io::stdin()
.read_line(&mut some_input)
.unwrap();
let command_example = Command::new("echo")
.arg(&some_input)
.output()
.unwrap();
let expected_output = format!("{}\n", &some_input);
assert_eq!(expected_output.as_bytes(), command_example.stdout.as_slice());
}
assert
块正在通过,所以我可以看到命令的输出最终出现在结构体的粗壮缓冲区中。但是,当我在终端中运行它时,没有输出,程序只是结束,没有将任何内容打印回标准输出。我做错了什么,这段代码不会导致某些内容被打印到标准输出?