watch - ein Programm periodisch ausführen, die Ausgabe im
Vollbildmodus anzeigen
ÜBERSICHT
watch [Optionen] Befehl
watch führt den Befehl wiederholt aus, wobei
dessen Ausgabe und Fehler angezeigt werden (der erste Bildschirminhalt).
Dies ermöglicht Ihnen die Überwachung der Änderungen
der Programmausgaben über längere Zeit.
Standardmäßig wird der Befehl alle zwei Sekunden
ausgeführt und watch läuft, bis es unterbrochen
wird.
- -b, --beep
- lässt die Systemglocke ertönen, falls ein Befehl sich mit
einem von Null verschiedenen Rückgabewert beendet.
- -c, --color
- interpretiert ANSI-Farb- und -Stilsequenzen.
- -C,
--no-color
- interpretiert keine ANSI-Farb- und -Stilsequenzen.
- -d,
--differences[=permanent]
- hebt die Unterschiede zwischen aufeinander folgenden Aktualisierungen
hervor. Falls das optionale Argument permanent angegeben ist, dann
zeigt watch alles, was sich seit dem ersten Durchlauf mindestens
einmal geändert hat.
- -e, --errexit
- friert die Aktualisierungen bei Fehlern in der Befehlsausführung
ein und bricht nach einem Tastendruck ab.
- -g, --chgexit
- beendet, wenn sich die Ausgabe des Befehls ändert.
- -n, --interval
Sekunden
- gibt das Aktualisierungsintervall an. Der Befehl erlaubt kein Intervall
kleiner als 0,1 Sekunden; kleinere Werte werden auf diesen Wert
geändert. In einigen Locales funktionieren sowohl »,«
als auch ».«. Mit der Umgebungsvariable
WATCH_INTERVAL können Sie ein Nicht-Standard-Intervall
dauerhaft setzen (den gleichen Regeln und der gleichen Formatierung
folgend).
- -p, --precise
- lässt watch versuchen, diesen Befehl im angegebenen
--interval in Sekunden auszuführen. Versuchen Sie es
mit ntptime (falls verfügbar) und beachten Sie, wie die
Sekundenbruchteile (nahezu) gleich bleiben, während sie im normalen
Modus fortwährend größer werden.
- -q, --equexit
<Durchläufe>
- beendet, wenn sich die Ausgabe des Befehls über die
angegebene Anzahl durchläufe nicht ändert.
- -r,
--no-rerun
- führt das Programm bei Änderungen der
Terminalgröße nicht erneut aus; die Ausgabe des Programms
erscheint wieder zum nächsten regulären
Ausführungszeitpunkt.
- -t,
--no-title
- deaktiviert die Anzeige der Kopfzeile, in der Intervall, Befehl und die
aktuelle Zeit oben in der Anzeige sowie eine nachfolgende Leerzeile
dargestellt werden.
- -w, --no-wrap
- deaktiviert den Zeilenumbruch. Lange Zeilen werden gekürzt, anstatt
sie in die nächste Zeile umzubrechen.
- -x, --exec
- übergibt den Befehl an exec(2) anstelle von sh
-c, was das Setzen von Anführungszeichen unnötig macht,
um den gewünschten Effekt zu erzielen.
- -h, --help
- zeigt einen Hilfetext an und beendet das Programm.
- -v, --version
- zeigt Versionsinformationen an und beendet das Programm.
- 0
- Erfolg.
- 1
- Verschiedene Fehlschläge.
- 2
- Forken des zu überwachenden Prozesses ist fehlgeschlagen.
- 3
- Ersetzen der Standardausgabe des Kindprozesses von der Schreibseite der
Pipe aus ist fehlgeschlagen.
- 4
- Befehlsausführung ist fehlgeschlagen.
- 5
- Schließen der Schreib-Pipe des Kindprozesses ist
fehlgeschlagen.
- 7
- Erzeugung der IPC-Pipe ist fehlgeschlagen.
- 8
- Das Ermitteln des Rückgabewertes des Kindprozesses mit
waitpid(2) ist fehlgeschlagen oder der Befehl brach aufgrund eines
Fehlers ab.
- other
- Die Überwachung gibt den Exit-Status des Befehls als Exit-Status
des Kindprozesses weiter.
Das Verhalten von watch wird durch die folgenden
Umgebungsvariablen beeinflusst.
- WATCH_INTERVAL
- Aktualisierungsintervall, welches den gleichen Regeln wie die
Befehlszeilenoption --interval folgt.
Die Optionen werden gemäß POSIX verarbeitet (das
heißt, die Optionsverarbeitung stoppt nach dem ersten Argument, das
keine Option ist). Das bedeutet, dass Schalter nach dem Befehl nicht
von watch selbst interpretiert werden.
Bei Größenänderungen des Terminals wird der
Bildschirm nicht korrekt neu gezeichnet, bis die nächste geplante
Aktualisierung erfolgt. Jegliche Hervorhebungen durch --differences
gehen durch diese Aktualisierung ebenfalls verloren. Wenn Sie die Option
--no-rerun verwenden, erfolgt keine Ausgabe.
Nicht darstellbare Zeichen werden aus der Programmausgabe
entfernt. Verwenden Sie cat -v als Teil der Befehls-Pipeline, wenn
Sie diese sehen wollen.
Kombinierende Zeichen, die mit einem Zeichen in der letzten Spalte
des Bildschirms angezeigt werden sollen, könnten eine Spalte vorher
erscheinen oder überhaupt nicht dargestellt werden.
Kombinierende Zeichen werden im Modus --differences nie als
Unterschiede gewertet. Es wird nur das Basiszeichen ausgewertet.
Leere Zeilen direkt nach einer Zeile, die in der letzten Spalte
endet, werden nicht angezeigt.
Der Modus --precise verfügt noch nicht über
eine fortgeschrittene Technologie zur zeitlichen Verzerrungskompensierung
eines Befehls, dessen Ausführung mehr als die als --interval
angegebenen Sekunden benötigt. watch kann auch in einen
Zustand gelangen, wo es so viele Befehlsausführungen auslöst,
wie es kann, um frühere Ausführungen aufzuholen, die
länger als das --interval benötigen (zum Beispiel wenn
netstat(8) eine unglaublich lange Zeit bei einem DNS-Suchvorgang
braucht).
Nach neuen Mails schauen:
- watch -n 60 from
Den Inhalt eines Verzeichnisses auf Änderungen
überwachen:
- watch -d ls -l
Nur nach den Dateien des Benutzers »joe«
schauen:
- watch -d 'ls -l | fgrep joe'
Die Effekte von Anführungszeichen sehen:
- watch echo $$
watch echo '$$'
watch echo "'"'$$'"'"
Um den Effekt der genauen Zeithaltung zu beobachten, versuchen
Sie, -p zu Folgendem hinzuzufügen:
- watch -n 10 sleep 1
Beobachten, wenn Ihr Administrator den neuesten Kernel
installiert:
- watch uname -r
(Beachten Sie, dass nicht garantiert werden kann, dass -p
nach einem Neustart noch funktioniert, insbesondere im Hinblick auf
ntpdate (falls verfügbar) oder andere die Zeit beeinflussende
Startmechanismen)