Copié el código a continuación de alguna fuente aleatoria en mi terminal y ejecuté:
while sleep 1;
do tput sc;
tput cup 0 $(($(tput cols)-29));
date;
tput rc;
done &
El código es para mostrar un reloj en ejecución en la esquina superior derecha de la terminal. El fragmento funcionó muy bien e hizo exactamente lo que quería, pero ahora solo quiero terminar este ciclo y deshacerme del reloj.
Además, necesito entender el código anterior. Tengo una idea, ya que sé qué tput
comando hace, pero todavía hay muchos puntos que no puedo conectar.
jobs
su sesión para enumerar trabajos en segundo plano activos y luego ponerla en primer plano escribiendofg <job number>
. Después de escribir Ctrl + C para detener este bucle infinito. Este escenario solo funciona en terminales que ejecutan fragmentos.Respuestas:
Puede ejecutar
jobs
comandos en su sesión para enumerar trabajos en segundo plano activos y luego ponerlos en primer plano escribiendofg <job number>
. Luego escriba Ctrl+ Cpara detener este bucle infinito.Este escenario solo funciona en terminales que ejecutan fragmentos.
Explicación:
tput sc
- Guardar la posición del cursor.tput cup 0 $(($(tput cols)-29))
- mueva el cursor a la posición0
del eje Y y(count of screen columns minus 29)
del eje X.date
- solo imprima la fecha actual.tput rc
- Restaurar la posición del cursor.while sleep 1; ... do ... ; done
- bucle con retraso de 1 segundo.Escriba
help while
para saber más sobrewhile
loop in shell y siga a man 1 tput o tldp tput doc para saber cómo funciona tput.fuente
kill %1
(o un número diferente si hay varios trabajos) es una alternativa afg
+Ctrl-C