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 (якщо є) та
інших
механізмів
зміни
часових
даних.)