Чи є команда `watch`, рідна для Darwin / OS X?


14

У мене є сценарій, який я намагаюся перенести з Linux на Darwin / OS X. Версія Linux в даний час залежить від watchкоманди, яка, здається, не встановлена ​​на Darwin / OS X за замовчуванням. Яка рідна альтернатива?


Відповіді:


19

Немає рідної альтернативи. Ви повинні придбати, watchвикористовуючи Homebrew ( brew install watch) або MacPorts ( port install watch), якщо вам потрібен фактичний виконуваний файл.

Однак ви можете імітувати функцію watch. Це можна виконати в стандартному баш-ланцюговому циклі ( від Stack Overflow від Daniel Pittman ):

Ви можете імітувати основну функціональність за допомогою петлі оболонки:

while :; do clear; your_command; sleep 2; done

Це назавжди замкнеться, очистить екран, запустить вашу команду та зачекає дві секунди - основний перегляд виконання вашої_команди.

Ви можете зробити цей крок далі і створити скрипт watch.sh, який може приймати ваш параметр_команду та сон_дурації як параметри:

#!/bin/bash
# usage: watch.sh <your_command> <sleep_duration>

while :;
  do
  clear
  date
  $1
  sleep
  $2
done

Це та інші параметри доступні в стеку переповнення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.