watch - ein Programm periodisch ausführen, die Ausgabe im Vollbildmodus
anzeigen
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.
-
-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.
-
-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.
-
-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.
-
-b, --beep
- lässt die Systemglocke ertönen, falls ein
Befehl sich mit einem von Null verschiedenen Rückgabewert
beendet.
-
-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.
-
-q, --equexit <Durchläufe>
- beendet, wenn sich die Ausgabe des Befehls
über die angegebene Anzahl durchläufe nicht
ändert.
-
-c, --color
- interpretiert ANSI-Farb- und -Stilsequenzen.
-
-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.
-
-w, --no-wrap
- deaktiviert den Zeilenumbruch. Lange Zeilen werden
gekürzt, anstatt sie in die nächste Zeile umzubrechen.
-
-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.
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 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)