J'ai copié le code ci-dessous d'une source aléatoire sur mon terminal et j'ai exécuté:
while sleep 1;
do tput sc;
tput cup 0 $(($(tput cols)-29));
date;
tput rc;
done &
Le code consiste à afficher une horloge en cours d'exécution dans le coin supérieur droit du terminal. L'extrait a très bien fonctionné et a fait exactement ce que je voulais, mais maintenant je veux juste terminer cette boucle et me débarrasser de l'horloge.
Aussi, j'ai besoin de comprendre le code ci-dessus. J'ai une idée, car je sais ce que fait la tput
commande, mais il y a encore beaucoup de points que je ne peux pas connecter.
jobs
votre session pour répertorier les travaux d'arrière-plan actifs, puis les mettre au premier plan en tapantfg <job number>
. Après avoir tapé Ctrl + C pour arrêter cette boucle infinie. Ce scénario fonctionne uniquement dans un terminal qui exécute l'extrait.Réponses:
Vous pouvez exécuter une
jobs
commande dans votre session pour répertorier les travaux d'arrière-plan actifs, puis les mettre au premier plan en tapantfg <job number>
. Tapez ensuite Ctrl+ Cpour arrêter cette boucle infinie.Ce scénario fonctionne uniquement dans un terminal qui exécute l'extrait.
Explication:
tput sc
- enregistrer la position du curseur.tput cup 0 $(($(tput cols)-29))
- déplacer le curseur sur la position0
de l'axe Y et(count of screen columns minus 29)
de l'axe X.date
- il suffit d'imprimer la date actuelle.tput rc
- restaurer la position du curseur.while sleep 1; ... do ... ; done
- boucle avec retard de 1 seconde.Tapez
help while
pour en savoir plus sur lawhile
boucle dans le shell et suivez pour man 1 tput ou tldp tput doc pour savoir comment fonctionne tput.la source
kill %1
(ou un nombre différent s'il y a plusieurs emplois) est une alternative àfg
+Ctrl-C