He ejecutado programas de línea de comandos que generan una línea, y luego actualizo esa línea un momento después. Pero con Ruby solo puedo dar salida a una línea y luego a otra línea.Escribir líneas de salida anteriores en el símbolo del sistema con ruby
Lo que he de ser la salida ahora:
Downloading file:
11MB 294K/s
12MB 307K/s
14MB 294K/s
15MB 301K/s
16MB 300K/s
Done!
Y en lugar, quiero ver esto:
Downloading file:
11MB 294K/s
siguió un momento después de esto:
Downloading file:
16MB 300K/s
Done!
La línea de mis resultados de script de ruby que muestran que el tamaño de archivo descargado y la velocidad de transferencia se sobrescribirán cada vez en lugar de la lista ing los valores actualizados como una nueva línea completa.
Actualmente estoy usando puts
para generar resultados, lo que claramente no está diseñado para este caso. ¿Hay algún método de salida diferente que pueda lograr este resultado?
Esta solución no muestra salida hasta que se emite una nueva línea, o el programa termina, al parecer. Este ejemplo, por ejemplo 'print '123'; sleep 5; imprimir "\ r"; print "456" 'no imprime nada al principio, y luego imprime" 456 "5 segundos después. Entonces no me ayuda mucho. –
Agregue 'STDOUT.flush' para enviarlo a la salida inmediatamente. Actualicé la respuesta también. – detunized
Ahhhh eso tiene sentido. Eso se solucionó y está funcionando bien ahora, ¡gracias! –