Avatar ·

Cómo ejecutar un comando del sistema y capturar su salida en Rust

¡Hola, colegas! Empecé a aprender Rust y estoy escribiendo una pequeña herramienta de automatización. Necesito ejecutar un comando externo del sistema (por ejemplo, `ls -la` o `git status`) y leer su salida (stdout y stderr) directamente en el programa para luego procesar las líneas. Miré la documentación del módulo `std::process::Command`, pero no logro capturar la salida correctamente. Esto es lo que intenté: ```rust use std::process::Command; fn main() { let output = Command::new("ls") .arg("-la") .output() .expect("No se pudo ejecutar el comando"); println!("stdout: {}", output.stdout); println!("stderr: {}", output.stderr); } ``` Pero en la consola se muestra algo como `stdout: [115, 111, 109, 101, 32, 116, 101, 120, 116]` — ¡son bytes, no una cadena! ¿Cómo obtengo texto legible? ¿Y qué hago si el comando puede fallar? Quiero entender cómo manejar correctamente el estado de salida y cómo capturar stderr por separado. ¡Gracias de antemano por la ayuda!