НАЗВА

watch — програма для періодичного виконання інших програм з виведенням даних на весь екран

КОРОТКИЙ ОПИС

watch [параметри] команда

ОПИС

watch виконує команду регулярно, показує виведені нею дані та повідомлення щодо помилок (перший екран). За watch ви зможете спостерігати за змінами у виведених даних із часом. Типово, запуск програми команда відбуватиметься кожні 2 секунди, аж доки роботу watch не буде перервано.

ПАРАМЕТРИ

-d, --differences[=permanent]
Позначити відмінності між двома послідовними запусками. Якщо задано необов'язковий аргумент permanent, watch покаже усі зміни із часу першого запуску.
-n, --interval число
Визначити інтервал між запусками. Найменшим є інтервал у 0,1 секунди. Якщо ви вкажете менше значення, використовуватиметься інтервал у 0,1 секунди. У всіх локалях працюють і «.» і «,». Для постійного визначення нетипового інтервалу можна скористатися змінною середовища WATCH_INTERVAL (для неї використовуються ті самі правила і форматування).
-p, --precise
Наказати watch запускати command кожні --interval секунд. Спробуйте з ntptime (якщо є) і зауважте, що дробові частки секунд залишаються (майже) незмінними, на відміну від звичайного режиму, коли значення неперервно зростають.
-t, --no-title
Вимкнути показ заголовка із даними щодо інтервалу, команди та поточного часу та наступного порожнього рядка у верхній частині екрана.
-b, --beep
Гудок, якщо виконання команди завершується ненульовим станом.
-e, --errexit
Призупинити оновлення, якщо буде виявлено помилку, і завершити роботу після натискання будь-якої клавіші.
-g, --chgexit
Вийти, якщо змінилися дані, виведені командою команда.
-q, --equexit <цикли>
Вийти, коли виведення команди не змінюється вказану кількість циклів.
-c, --color
Обробляти послідовності символів ANSI для кольорів і стилю.
-x, --exec
Передати команду команда до exec(2) замість sh -c. Це зменшує потребу у використанні лапок для отримання бажаного результату.
-w, --no-wrap
Вимкнути перенесення рядків. Довгі рядки буде обрізано, замість перенесення на наступний.
-h, --help
Вивести текст довідки і завершити роботу.
-v, --version
Вивести дані щодо версії і завершити роботу.

СТАН ВИХОДУ

0
Успіх.
1
Різноманітні помилки.
2
Відгалуження процесу для спостереження зазнало невдачі.
3
Не вдалося замінити стандартне виведення дочірнього процесу на канал стороннього запису.
4
Помилка під час виконання команди.
5
Відгалуження процесу для спостереження зазнало невдачі.
7
Спроба створення каналу IPC зазнала невдачі.
8
Спроба отримання значення виходу дочірнього процесу за допомогою waitpid(2) зазнала невдачі або команда завершила роботу повідомлення про помилку.
інший
watch передасть стан виходу команди як стан виходу дочірнього процесу.

СЕРЕДОВИЩЕ

На поведінку watch можна впливати за допомогою вказаних нижче змінних середовища.
 
WATCH_INTERVAL
Інтервал оновлення, використовує ті самі правила, що і параметр командного рядка --interval.

ЗАУВАЖЕННЯ

Спосіб обробки параметрів POSIX (тобто обробка параметрів завершується на першому з аргументів, який не є параметром). Це означає, що параметри після команди не оброблятимуться самою програмою watch.

ВАДИ

Після зміни розмірів вікна термінала, дані не буде належним чином переформатовано до наступного запланованого оновлення. Також буде втрачено усі позначення, отримані за допомогою параметра --differences.
 
Непридатні до виведення символи буде усунуто із даних, виведених програмою. Якщо ви хочете побачити ці символи, скористайтеся cat -v у послідовності команд, створеній за допомогою символу каналу (|).
 
Символи поєднання, які мало бути показано на позиції у останньому стовпчику на екрані, може бути показано на стовпчик раніше або взагалі не показано.
 
Символи поєднання ніколи не враховуються під час визначення відмінностей, якщо використано параметр --differences. До уваги беруться лише основні символи.
 
Порожні рядки, розташовані безпосередньо після рядка, що завершує останній стовпчик, не буде показано.
 
У режимі --precise ще не передбачено технології розширеного викривлення часу для компенсації проблем із командою, виконання якої триває понад --interval секунд. Крім того, watch може перейти у режим, коли програма швидко намагається запустити якомога більше екземплярів команди для того, щоб «наздогнати» план за попередніми запусками, виконання яких тривало понад --interval (наприклад, виконання команди netstat під час пошуку у DNS може тривати дуже довго).

ПРИКЛАДИ

Для спостереження за надходженням пошти можна скористатися такою командою:
watch -n 60 from
Для спостереження за змінами у вмісті каталогу можна скористатися такою командою:
watch -d ls -l
Якщо вас цікавлять лише файли, власником яких є користувач joe, ви можете скористатися такою командою:
watch -d 'ls -l | fgrep joe'
Щоб побачити результат використання лапок, спробуйте таку команду:
watch echo $$
 
watch echo '$$'
 
watch echo "'"'$$'"'"
Щоб побачити результат точного врахування часу, спробуйте додати параметр -p до такої команди:
watch -n 10 sleep 1
Стежити за діями зі встановлення найновіших версій ядра адміністратора вашого комп’ютера можна за допомогою такої команди:
watch uname -r
(Зауважте, що роботу з -p під час перезавантаження не гарантовано, особливо з врахуванням використання ntpdate (якщо є) та інших механізмів зміни часових даних.)

Recommended readings

Pages related to watch you should read also: