Como executar um comando do sistema e capturar sua saída em Rust?
Olá, colegas!
Comecei a estudar Rust e estou escrevendo uma pequena ferramenta de automação. Preciso executar um comando externo do sistema (por exemplo, `ls -la` ou `git status`) e ler sua saída (stdout e stderr) diretamente no programa, para depois processar as linhas.
Eu vi a documentação do módulo `std::process::Command`, mas não estou conseguindo capturar a saída corretamente. Aqui está o que tentei:
```rust
use std::process::Command;
fn main() {
let output = Command::new("ls")
.arg("-la")
.output()
.expect("Não foi possível executar o comando");
println!("stdout: {}", output.stdout);
println!("stderr: {}", output.stderr);
}
```
Mas no console aparece algo como `stdout: [115, 111, 109, 101, 32, 116, 101, 120, 116]` — são bytes, não uma string! Como faço para obter texto legível? E o que fazer se o comando falhar? Quero entender como lidar corretamente com o status de saída e como capturar stderr separadamente.
Agradeço desde já pela ajuda!