WATCH(1)

NAZWA
watch - regularne uruchamianie programu z wyświetlaniem wyjścia na pełnym ekranie

SKŁADNIA
watch [opcje] polecenie

OPIS
watch powtarza uruchamianie polecenia, wyświetlając jego wyjście oraz błędy (przy czym wyjście na pełnym ekranie). Pozwala to obserwować zmianę wyjścia programu w czasie. Domyślnie program jest uruchamiany co 2 sekundy. watch domyślnie działa aż do przerwania.

OPCJE

-d, --differences [trwale]
    Podświetlanie różnic między kolejnymi uaktualnieniami. Opcja może mieć opcjonalny argument, który zmienia podświetlenie na trwałe, pozwalające zobaczyć, co zmieniło się przynajmniej raz od pierwszej iteracji.

-n, --interval sekundy
    Określenie odstępu między uaktualnieniami. Polecenie nie będzie uruchamiane częściej niż co 0.1 sekundy - na taką wartość są zamieniane krótsze okresy.

-p, --precise
    Próba uruchamiania polecenia co podaną liczbę sekund. Można wypróbować tę opcję z poleceniem ntptime i obserwować, jak ułamki sekund pozostają (prawie) takie same, w przeciwieństwie do trybu zwykłego, gdzie stale się zwiększają.

-t, --no-title
    Wyłączenie nagłówka pokazującego okres, polecenie oraz czas bieżący na górze ekranu, a także następującej po nim pustej linii.

-b, --beep
    Sygnał dźwiękowy w przypadku niezerowego kodu wyjścia polecenia.

-e, --errexit
    Zamrożenie uaktualnień po błędzie polecenia, zakończenie pracy po naciśnięciu klawisza.

-g, --chgexit
    Zakończenie, gdy wyjście polecenia się zmieni.

-c, --color
    Interpretowanie sekwencji kolorów i stylów ANSI

-x, --exec
    polecenei jest przekazywane do sh -c, co oznacza, że może być potrzeba użycia dodatkowego cytowania do osiągnięcia pożądanego efektu. Z opcją --exec polecenie jest natomiast przekazywane do funkcji exec(2).

-h, --help
    Wyświetlenie tekstu pomocy i zakończenie.

-v, --version
    Wyświetlenie informacji o wersji i zakończenie.

UWAGA
Uwaga: używany jest wariant POSIX przetwarzania opcji (tzn. przetwarzanie opcji kończy się na pierwszym argumencie nie będącym opcją). Oznacza to, że flagi podane po poleceniu nie są interpretowane przez program watch.

PRZYKŁADY

Aby obserwować pocztę, można wykonać

    watch -n 60 from

Aby obserwować zmiany zawartości katalogu, można użyć

    watch -d ls -l

Jeżeli interesujące są tylko pliki, których właścicielem jest użytkownik joe, można użyć

    watch -d 'ls -l | fgrep joe'

Aby zobaczyć efekty cytowania, można wypróbować

    watch echo $$
    watch echo '$$'
    watch echo "'"'$$'"'"

Aby zobaczyć efekt precyzyjnej obsługi czasu, można spróbować dodać -p do

    watch -n 10 sleep 1

Można obserwować, jak administrator instaluje najnowsze jądro, przy użyciu

    watch uname -r

(Uwaga: -p nie daje gwarancji działania między restartami systemu, szczególnie w obliczu ntpdate czy innych mechanizmów zmieniających czas w trakcie rozruchu)

BŁĘDY
Przy zmianie rozmiaru terminala ekran nie zostanie poprawnie odrysowany aż do następnego uaktualnienia. Przy tym uaktualnieniu wszystkie podświetlenia --differences zostaną utracone.

Znaki niedrukowalne są usuwane z wyjścia programu. Aby je zobaczyć, można użyć "cat -v" jako części potoku polecenia.

Znaki dołączane, które mają być wyświetlane na znaku w ostatniej kolumnie ekranu, mogą wyświetlać się o jedną kolumnę za wcześnie albo wcale.

Znaki dołączane nigdy nie liczą się jako różne w trybie --differences. Liczy się tylko znak podstawowy.

Puste wiersze bezpośrednio po wierszu kończącym się w ostatniej kolumnie, nie są wyświetlane.

Tryb --precise nie ma jeszcze zaawansowanej technologii zakrzywienia czasoprzestrzeni w celu skompensowania przypadku wykonywania polecenia dłużej niż okres. watch może też wejść w stan, w którym szybko uruchamia wiele instancji polecenia, aby dogonić poprzednie działające więcej niż okres (np. netstat trwający wieki przez wyszukiwania DNS).

KOD WYJŚCIA

    0   Sukces.
    1   Różne niepowodzenia.
    2   Nie udało się odgałęzić procesu do obserwacji.
    3   Nie udało się zastąpić standardowego wyjścia procesu potomnego stroną piszącą potoku.
    4   Nie udało się uruchomić polecenia.
    5   Nie udało się zamknąć potoku piszącego procesu potomnego.
    7   Nie udało się utworzyć potoku IPC.
    8   Nie udało się uzyskać kodu powrotu procesu potomnego przez waitpid(2) lub polecenie zakończyło się błędem.
    inne
        Program watch propaguje kod wyjścia polecenia jako kod wyjścia potomka.

AUTORZY
Oryginalny program watch napisał Tony Rems (rembo@unisoft.com) w roku 1991, z modyfikacjami i poprawkami autorstwa Francoisa Pinarda. Następnie przepisał go dodając nowe opcje Mike Coleman (mkc@acm.org) w 1999. Opcje sygnału dźwiękowego, uruchamiania przez exec oraz obsługi błędów dodał Morty Abzug (morty@frakir.org) w 2008. Pewnego niezbyt ciemnego i burzowego poranka w marcu 2003 Anthony DeRobertis (asd@suespammers.org) miał dość obserwacji, które powinny uruchamiać się co minutę, uaktualniających się wiele sekund po początkowej minucie, i dodał precyzję mikrosekundową. Obsługę Unicode dodał w 2009 roku Jarrod Lowe (procps@rrod.net)