Ich habe den folgenden Code von einer zufälligen Quelle auf mein Terminal kopiert und ausgeführt:
while sleep 1;
do tput sc;
tput cup 0 $(($(tput cols)-29));
date;
tput rc;
done &
Der Code soll eine laufende Uhr in der oberen rechten Ecke des Terminals anzeigen. Das Snippet hat sehr gut funktioniert und genau das getan, was ich wollte, aber jetzt möchte ich nur diese Schleife beenden und die Uhr loswerden.
Außerdem muss ich den obigen Code verstehen. Ich habe eine Idee, da ich weiß, was der tput
Befehl bewirkt, aber es gibt immer noch viele Punkte, die ich nicht verbinden kann.
jobs
Ihre Sitzung ausführen, um aktive Hintergrundjobs aufzulisten, und sie dann durch Eingabe in den Vordergrund stellenfg <job number>
. Geben Sie nach Strg + C diese Endlosschleife ein. Dieses Szenario funktioniert nur in Terminals, auf denen Snippet ausgeführt wird.Antworten:
Sie können
jobs
in Ihrer Sitzung einen Befehl ausführen, um aktive Hintergrundjobs aufzulisten und sie dann durch Eingabe in den Vordergrund zu stellenfg <job number>
. Geben Sie dann Ctrl+ ein C, um diese Endlosschleife zu stoppen.Dieses Szenario funktioniert nur in Terminals, auf denen Snippet ausgeführt wird.
Erläuterung:
tput sc
- Cursorposition speichern.tput cup 0 $(($(tput cols)-29))
- Bewegen Sie den Cursor auf die Position0
der Y-Achse und(count of screen columns minus 29)
der X-Achse.date
- Drucken Sie einfach das aktuelle Datum aus.tput rc
- Cursorposition wiederherstellen.while sleep 1; ... do ... ; done
- Schleife mit einer Verzögerung von 1 Sekunde.Geben Sie
help while
mehr darüber zu wissen ,while
Schleife in der Schale und folgen Mann 1 tput oder TLDP tput doc zu wissen , wie tput funktioniert.quelle
kill %1
(oder eine andere Nummer, wenn es mehrere Jobs gibt) ist eine Alternative zufg
+Ctrl-C