Wie führe ich einen Systembefehl aus und erhalte seine Ausgabe in Rust?
Hallo zusammen! Ich bin neu in Rust und versuche, einen einfachen Systembefehl wie `ls -la` auszuführen und seine Ausgabe als String zu erhalten. In Python würde ich `subprocess.check_output(...)` verwenden, aber hier funktioniert nichts.
Ich versuche es so:
```rust
use std::process::Command;
fn main() {
let output = Command::new("ls")
.arg("-la")
.output()
.expect("failed to execute process");
println!("{}", output.stdout);
}
```
Aber in der Konsole wird so etwas wie `[115, 116, 114, ...]` angezeigt – Zahlen, kein lesbarer Text. Ich habe versucht, `.to_string()` hinzuzufügen, aber der Compiler meckert. Außerdem habe ich von `std::process::Output` gehört, verstehe aber nicht, wie ich daraus den Text extrahieren kann.
Könnt ihr mir sagen, wie ich den Befehl richtig ausführe und seine Ausgabe als String erhalte? Am liebsten mit Fehlerbehandlung – was tun, wenn der Befehl nicht gefunden wird oder mit einem Nicht-Null-Code endet. Danke im Voraus!
<<>>
Hauptproblem: Bytes vs String
Ihr habt fast alles richtig gemacht