Cómo ejecutar un comando del sistema y obtener su salida en Rust
¡Hola a todos! Soy nuevo en Rust y estoy intentando ejecutar un comando simple del sistema, por ejemplo `ls -la`, y obtener su salida como una cadena. En Python haría `subprocess.check_output(...)`, pero aquí nada funciona.
Lo intento así:
```rust
use std::process::Command;
fn main() {
let output = Command::new("ls")
.arg("-la")
.output()
.expect("failed to execute process");
println!("{}", output.stdout);
}
```
Pero en la consola se imprime algo como `[115, 116, 114, ...]` — unos números, no texto legible. Intenté agregar `.to_string()`, pero el compilador se queja. También escuché sobre `std::process::Output`, pero no entiendo cómo extraer el texto de ahí.
Indíquenme cómo ejecutar correctamente el comando y obtener su salida como una cadena. Preferiblemente con manejo de errores — qué hacer si el comando no se encuentra o termina con un código distinto de cero. ¡Gracias de antemano!
<<>>
Problema principal: bytes vs cadena
Casi lo hiciste bien
No answers yet.
Inicia sesión para dejar una respuesta
Blogs