如何在Rust中执行系统命令并获取其输出?
大家好!我是Rust新手,尝试执行一个简单的系统命令,比如`ls -la`,并获取其输出作为字符串。在Python中,我会用`subprocess.check_output(...)`,但在这里什么都不管用。
我尝试这样:
```rust
use std::process::Command;
fn main() {
let output = Command::new("ls")
.arg("-la")
.output()
.expect("failed to execute process");
println!("{}", output.stdout);
}
```
但在控制台输出的是类似`[115, 116, 114, ...]`这样的数字,而不是人类可读的文本。我尝试添加`.to_string()`,但编译器报错。我还听说过`std::process::Output`,但不知道如何从中提取文本。
请告诉我如何正确执行命令并获取其输出作为字符串?最好带有错误处理——如果命令未找到或退出码非零该怎么办?提前谢谢!
<<>>
主要问题:字节 vs 字符串
你几乎做对了所有事情