Avatar ·

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