¿Existe un comando de localizador Unix de desplazamiento automático con retraso de tiempo?

10

Me gustaría ver la salida de grandes comandos ralentizados, como una presentación de diapositivas con, por ejemplo, un retraso automático de 500 ms entre cada desplazamiento. ¿Cuál es la forma más sencilla de lograr esto?

Blazej Wieliczko
fuente

Respuestas:

8

Una solución simple usando bash:

function scroll
{
    while read -r ; do echo "$REPLY" ; sleep ${1:-0.5} ; done
}

Uso

long_command | scroll [delay]

delayes opcional y por defecto 0.5.

Salir con Ctrl+C

Ciro
fuente
1
No sé por qué mi edición es rechazada, pero tenga echo /** en cuenta que en su salida de long_command (por ejemplo, catun archivo) se bloqueará e inundará su sesión de terminal si no pone comillas dobles "$REPLY".
林果 皞
1
@ 林果 皞 aprobó y eliminó la advertencia, gracias. Debería haber agregado las citas en primer lugar.
cYrus
... Agregué la advertencia solo porque el sistema no permite editar solo 2 caracteres.
林果 皞
4

Si puedes vivir con una resolución de 1s, podrías hacerlo tail -n +0 -f -s <seconds>.

Nicole Hamilton
fuente
2
La salida de long_commandposiblemente se genera en menos de un segundo, por lo que no tiene sentido sondear su integridad cada vez <interval>y, de hecho, no funciona para mí.
cYrus
2

Puede usar vimuna asignación adecuada para lograr esto:

vim -c 'map <S-f20> L:redraw<cr>:sleep 500m<cr><C-d><S-f20>' -c 'execute "normal \<S-f20>"' -

Ctrl-ddesplaza media página a la vez, reemplaza con 10jpara desplazarte 10 líneas a la vez.

Thor
fuente