Curso de Raku / Objetos, entrada/salida y excepciones / Entrada y salida / Ejecutar programas externos 🆕
run y shell
Hay dos maneras de lanzar un programa externo. La función
run toma la orden y sus argumentos como valores
separados y ejecuta el programa directamente, sin
implicar a ninguna shell:
run 'echo', 'hello';Esto ejecuta el programa echo con el único argumento
hello, que imprime hello. Como los argumentos
se pasan por separado, no hay riesgo de que la shell interprete mal
espacios o caracteres especiales: run es la opción segura
por omisión.
La función shell, en cambio, pasa una única
cadena a la shell del sistema, que la interpreta. Esto te
permite usar funcionalidades de la shell como las tuberías y las
redirecciones:
shell 'echo hello | tr a-z A-Z';Aquí la shell ejecuta echo, encauza su salida a través
de tr e imprime HELLO. La comodidad viene con
una advertencia: como la shell analiza la cadena, construir una orden
shell a partir de entrada no fiable es peligroso. Prefiere
run salvo que necesites expresamente funcionalidades de la
shell.
Ambas devuelven un objeto Proc que describe cómo terminó
el programa. Por omisión, el programa lanzado comparte la salida de tu
programa, así que lo que imprime aparece en la pantalla. Para capturar
esa salida hay que pedirlo, y ese es el tema de la página siguiente.
Práctica
Resuelve 1 cuestionario sobre el contenido de este tema.
Navegación del curso
← Ejecutar programas externos 🆕 | Quiz — Ejecutar programas →
💪 O ve directamente a los ejercicios de esta
sección.