Estoy usando IO.popen
en Ruby para ejecutar una serie de comandos de línea de comandos en un bucle. Entonces necesito ejecutar otro comando fuera del ciclo. El comando fuera del bucle no puede ejecutarse hasta que todos los comandos en el bucle hayan terminado.¿Cómo esperar a que el proceso termine de usar IO.popen?
¿Cómo hago para que el programa espere a que esto suceda? Por el momento, el comando final se está ejecutando demasiado pronto.
Un ejemplo:
for foo in bar
IO.popen(cmd_foo)
end
IO.popen(another_cmd)
Así que todo cmd_foos
necesidad de volver antes de ejecutar another_cmd
.
Así como una nota adicional: el uso de la forma de bloque de los métodos de Io es generalmente más seguro. Además, en 1.9 usted obtiene robustez adicional porque las variables de bloque tienen un alcance diferente que impide la modificación de las mismas variables nombradas fuera del bloque (y obtendrá una advertencia). –